JasonLuo's Blog JasonLuo's Blog
February 3, 2022

設置可以遠端連線的Linux Server

Posted on February 3, 2022  •  5 minutes  • 2152 words

 最近重新開始把自己家裡的桌電當成小型server,所以就有了遠端連線的需求,還記得兩三年前的時候曾經有弄過一次,但這次要弄的時候卻發現忘了很多東西,所以這次就把過程記錄下來,除了分享之外,以後有需要也有文章可以參考。雖然在這個AWS、GCP等雲端服務橫行的時代裡,直接使用他們的服務非常的方便,但仍有自己的桌機server還是一件很酷的事😎,而且也不需要花錢才能使用服務,同時在架設的過程中也可以學到一些事情。

廢話不多說,就趕快進入正題吧!


設定固定IP

 首先,家用網路通常是浮動IP,因此我們需要先設定一組固定IP,這樣才能用同一組IP做登入,不然每次登入時的IP會變來變去。我家的網路是ADSL光世代,中華電信有提供一組固定IP給客戶使用,因此先到中華電信的網站去做設定,設定完之後應該可以看到以下的畫面

設定時間 [time=Thu, Jan 27, 2022 8:58 PM]

設定PPPoE網路連線

設定完之後,接下來有兩條路可以走:

  1. 網路線直接連到桌機
  2. 網路數據機先接WIFI分享器後,再從分享器接到桌機

前面的方法比較簡單,只要在Ubuntu裡設定PPPoE之後就結束了,後面那一種則是要在WIFI分享器裡做設定

先說明第一種 Ubuntu設定PPPoE

  1. 如果沒有PPPoE工具,先安裝

    sudo apt install net-tools
    sudo apt-get install pppoeconf
    
  2. 設定PPPoE

    sudo pppoeconf
    

    下了這個指令之後會跳出一個視窗,除了帳號和密碼之外,其他都按YES 在輸入帳號和密碼的地方,要輸入電信公司給的帳號和密碼 這邊以中華電信為例:

    帳號: [帳號]@ip.hinet.net 密碼: [中華電信的密碼]

  3. 撥接(開啟固定IP服務)

    sudo pon dsl-provider
    

    撥接成功訊息 Plugin rp-pppoe.so loaed

  4. 之後在command line打ip addr show,在最下面應該可以看到電信公司給的固定IP,如有看到即完成設定。

  5. 如要中斷連線

    sudo poff -a
    

另一個種是設定wifi分享器

 除了桌電要接網路之外,同時也想要有WIFI讓其他裝置可以連網,這時候就需要用到WIFI分享器。而當桌機的網路是從WIFI分享器來的時候,設置桌機linux的PPPoE就沒有用了,此時要去設定WIFI分享器的連線方式才行。  這個時候我們可以把wifi分享器比擬成一個公司大樓的總機,裡面各個不同的連接阜想成是大樓裡不同的辦公室,所以當網路訊號(信件)送來時,會先傳到WIFI分享器(總機),再藉由分享器(總機)來傳遞到正確的辦公室的人的手上。所以網路訊號送過來時,最先接觸到的是WIFI分享器,因此我們要設置分享器中的PPPoE,才會有固定IP。

WIFI分享器的設定

每個裝置的設定頁面可能會不一樣,而我是用D-Link 819的WIFI分享器,所以以下是D-Link 819分享器的裝置設定:

  1. 打開網頁打入192.168.0.1連到分享器的設定網頁

  2. 找到網路連線的設定畫面選擇PPPoE並輸入帳號、密碼(中華電信給的:XXXXXXXX@ip.hinet.net),完成設定。

  3. 以上步驟完成之後即完成固定IP的設置,此時,不管哪個裝置連線之後,顯示的IP位址都會是固定IP的位址。

  4. 接下來需要把連接阜設定到特定的內網IP,這樣在連線的時候才會連到特定的內網IP 設定如下圖,公用和私用連接阜都設定成22,22為ssh連線時默認的連接阜,通訊協定選擇TCP或是TCP+UDP都可以

  5. 再來,我們要設定DHCP保留位址,這樣下次重新啟動WIFI分享器,重新連線的時候,桌機被分配到的內網才會相同,不然內網IP變了,連線的時候就會無法連線。


到此,固定IP就設定好了,接下來要設定SSH的連線🙂

SSH網路連線的設定

 接下來要到Linux Ubuntu上設定SSH連線

  1. 先檢查Ubuntu是否開啟openssh-server的服務,使用ps aux|grep ssh檢查是否有啟動sshd,如有啟動sshd服務可以跳過2, 3, 4步 openssh-server是連到你的電腦需要的 openssh-client則是連出去需要用到的
  2. 檢查是否有安裝openssh-server dpkg -l | grep ssh 如果沒有就要下載 sudo apt-get install openssh-server
  3. 下載完之後啟動服務 sudo service ssh start
  4. 檢查服務是否有啟動 sudo service ssh status
  5. 設定/etc/host.allow/etc/host.deny限制可以連線的IP位址,hosts.allow的優先順序高於hosts.deny e.g.
    # daemon_list : client_list [: command]
    sshd : 192.168.1.100
    ALL: 140.112.*
    vsftpd : 192.168.1.*  # ftp連線設定
    
  6. SSH密鑰的設置 原先一開始連線是用密碼來做登入,如果換成使用SSH密鑰登入的話,更可以增加安全性 原本就有ssh key的話,只要把public key加到server的~/.ssh/authorized_keys中即可 沒有ssh key的話就要先用ssh-keygen產生一組publick key和private key
  7. 修改/etc/ssh/sshd_config檔案,使其登入方式改變成用SSH key登入 把檔案中的PasswordAuthentication改成no,PubkeyAuthentication改成yes
    PasswordAuthentication no
    PubkeyAuthentication yes
    
  8. 重新啟動sshd服務 service sshd restart

最後,試試看使用筆電登入server,能登入的話就成功了🥳

Some Reference:


comments powered by Disqus
Follow me

Now, I work in a weather company to develop ML/DL projects