流水賬 利用閒置筆記本搭建自己的開發伺服器

2021-08-11 09:49:52 字數 4534 閱讀 5434

對ubuntu伺服器進行基礎配置

配置dnsmasq伺服器

文章沒什麼技術含量,主要記錄一些配置檔案的位置

最近新入手了一台macbook air,原來的thinkpad就閒置下來了,感覺一直放著太浪費了,就重灌了乙個ubuntu server 16.04的系統,用來做自己的開發伺服器。折騰了幾個小時,就都搞定了,特意寫下這篇文章,來記錄一下自己折騰的過程。

伺服器安裝的過程就不說了,大都是那麼幾步。有乙個奇怪的問題就是安裝的時候,需要設定時區,我竟然沒有找到東八區,只好先設定了乙個太平洋時區,好尷尬,不知道是不是ubuntu的文字安裝介面沒有東八區這個選項,還是我英文太差了,沒有找到。

由於安裝時我們設定了錯誤的時區,所以首先需要調整一下時區。ubuntu 16.04已經完全整合了systemd,所以我們只需要通過sudo timedatectl set-timezone asia/shanghai命令,就可以將時區設定為亞洲/上海了,同時我們也可以執行sudo timedatectl set-ntp 1命令,開啟自動從 ntp 伺服器同步時間,一會之後伺服器時間就正常了。timedatectl命令還有乙個選項是set-local-rtc,用來將硬體時間設定為本地時間,而不是utc時間,這個選項我預設是關閉的。

接下來,就是更改源了,開啟/etc/apt/sources.list檔案,將所有的us.archive.ubuntu.com替換成mirrors.ustc.edu.cn就可以了,注意這裡由於我安裝的時候選擇的是美國的源,所以網域名稱為us.archive.ubuntu.com,如果選擇了其他地方的源,網域名稱可能不一樣。

由於我的電腦是筆記本,儘管沒有裝圖形介面,但是在合上蓋子之後,系統仍然會自動休眠,所以需要將這個自動休眠的功能關掉。我在網上搜尋了一下,在 askubuntu 上找到了乙個相關的問題,按照問題中的答案所說,向/etc/systemd/logind.conf檔案中新增一行handlelidswitch=ignore,然後重啟systemd-logind.service服務,就關閉掉這個功能啦。

將伺服器配置好以後,接下來我們就需要配置網路了。

我的筆記本是通過網線連線到路由器上的,所以,首先我們需要將有線網**過 dhcp 自動連線網路的功能開啟。這裡我在網上搜尋了一下,搜到了一篇文章:ubuntu networking configuration using command line 。這篇文章很詳細地介紹了ubuntu如何設定動態ip和靜態ip。我的電腦在剛裝好系統的時候,沒有任何關於有線網絡卡的配置檔案,僅能夠通過ip addr命令來看到當前系統的網絡卡,在了解到有線網絡卡的名稱為enp12s0之後,我新建了乙個檔案/etc/network/inte***ces.d/enp12s0.conf,然後向其中新增了如下的內容,

# 設定網絡卡enp12s0在開機的時候通過 dhcp 自動連線到網路。

auto enp12s0

iface enp12s0 inet dhcp

上面兩句配置就表示設定網絡卡enp12s0在開機的時候通過 dhcp 自動連線到網路。

設定好網絡卡的 dhcp 以後,我的伺服器能夠 ping 通路由器閘道器了,但是仍然無法 ping 通外網,顯然,這是由於伺服器本機的閘道器沒有配置好,後來我又上網去搜尋,發現了askubuntu 上乙個類似的問題,其中有個答案提到,dhclient只在當前伺服器沒有設定預設閘道器的時候,才會設定由 dhcp 伺服器提供的路由器位址為預設閘道器。我通過ip route看了一下我的伺服器的路由表,發現預設閘道器為網絡卡lo,所以 dhcp 伺服器下發下來的閘道器位址並不會生效。我又在/etc/network/inte***ces中新增了如下的配置:post-up route del default dev lo,刪除掉預設走lo裝置的路由配置。

然後我再來重啟電腦,就發現伺服器一開機就能夠正常 ping 通外網了。

看到這裡,相信大家肯定都有一些疑惑,伺服器不應該是預設設定為靜態ip嗎,為什麼你要配置 dhcp 呢。原因就在這一小節,我用的路由器是華碩的rt - n12,它的 dhcp 伺服器有乙個功能,就是將mac位址和ip位址進行繫結,所以,我只需要在路由器上配置好mac位址和ip位址的繫結,這樣就相當於起到了靜態ip的作用了,而且更改起來也比較方便,不需要伺服器和路由器兩頭改。

由於我訪問我的伺服器的時候想通過網域名稱來訪問(方便以後新增https證書),所以我需要在我的內網中自己搭建乙個dns伺服器,來負責伺服器的網域名稱解析。

由於我的需求很簡單,只需要進行乙個網域名稱解析就可以了,所以我選擇了dnsmasq,而不是比較複雜的bind9。

dnsmasq在ubuntu的源中直接有deb安裝包,所以我們直接通過sudo apt install dnsmasq命令安裝即可。

dnsmasq的配置我參考了文章使用dnsmasq搭建內網dns伺服器。使用了如下的配置:

# 設定伺服器的監聽位址為192.168.x.x和127.0.0.1

listen-address=192.168.x.x,127.0

.0.1

# 所有沒有.號的網域名稱(plain names)都不會向上游dns server**,只查詢hosts檔案

domain-needed

# 所有保留ip位址段內的反向查詢都不會向上游dns server**,只查詢hosts檔案

bogus-priv

# 不要讀取/etc/resolver中的dns server的配置

no-resolv

# 不要poll /etc/resolver檔案的更新

no-poll

# 配置上游伺服器為dnspod的公共dns

server=119.29

.29.29

server=182.254

.116

.116

配置好了以後,我們可以通過dnsmasq --test命令來檢查dnsmasq的配置檔案語法是否正確。

然後我們在伺服器的/etc/hosts中新增我們想要設定的解析記錄,比如這台伺服器我設定了如下的記錄:

192.168

.x.x dev.bwangel

.me

然後通過sudo systemctl enable dnsmasq && sudo systemctl restart dnsmasq命令啟動dnsmasq服務即可。

最後我們可以通過dig命令測試一下,執行如下命令:dig dev.bwangel.me @localhost,看返回的ip位址是否和我們設定的解析記錄相同。

配置好了dns伺服器以後,我們再來修改路由器的 dhcp 策略,設定下發的dns伺服器ip位址為我們的dns伺服器位址,這樣內網中所有的dns查詢都會先經過這台dns伺服器。而我們的dev.bwangel.me網域名稱也就能夠成功解析了。至此,我們的開發伺服器就已經搭建好了,我們可以通過ssh連線上來,搭建我們想要的服務了。

這裡還有一點沒有搞清楚,路由器的 dhcp 中配置的dns伺服器並沒有正確地應用,伺服器還是預設遵循/etc/resolv.conf檔案中的配置,這個還需要進一步了解一下。

這個問題經常遇到了,在mac上通過ssh連線到ubuntu上之後,在安裝更新的過程中,出現了如下的報錯:

perl: warning: please check that your locale settings:

language = (unset),

lc_all = (unset),

lc_messages = "zh_cn.utf-8",

lang = "zh_cn.utf-8"

are supported and installed on

your system.

perl: warning: falling back

tothe standard locale ("c").

這是由於終端ssh的時候,會將本地的locale配置傳到服務端上去,我的本地設定的語系是zh_cn.utf-8,但是伺服器上只安裝了en_us.utf-8,所以就會報錯提示說找不到語系zh_cn.utf-8相關的檔案。這裡我們只需要修改一下伺服器的/etc/locale.gen配置檔案,將zh_cn.utf-8相關的配置取消注釋,然後再來執行locale-gen命令,就會安裝上zh_cn.utf-8語系相關的檔案了,再來執行perl程式就不會報錯了。

「全棧」工程師筆記 記乙個完整的專案流水賬

引語 相信很多人都自認為自己是個全棧工程師,不管有沒有驗證過,我也不例外。心中總有一種傲氣,事情都能做,只是做得好不好,時間夠不夠的問題!所以,對很多事情,我其實是一點不怕的,隨著時間的推移,人總是應該要進步的,去做一些沒做過的事,才對得起成長二字!剛好上上個月,公司有乙個新的專案需求,需要做乙個全...

新系列 使用微軟的技術體系製作自己的筆記本

從12年開始學技術,至今已經過了6個年頭,算不上成功,但也有逐漸也有了一些行業經驗,是時候做一款能夠複製且實用的應用了。1 滿足自身的實用性,我之前每個月都會為筆記本花費12塊錢。2 筆記本的復用性強,後續可整合自身的雲服務體系或者復用完成轉型成crm或erp系統去銷售都有幫助。3 技術實力的累積以...

筆記本搜不到自己的路由訊號的原因和解決方法

為什麼我的筆記本可以搜尋到別人的訊號卻搜尋不到自己的路由器訊號?解決方法如下 1 有線進入路由器管理介面,確認無線功能是否開啟。開啟時,無線wlan指示燈閃爍 2 修改無線訊號的頻程式設計客棧段,改為1到1之內,因為有些無線網絡卡可能不支援12 13頻段。3 調整無線路由器或無線網絡卡的位置,避開無...