2017年9月17日 星期日

[LINUX] 垮網域連接NFS伺服器 - Part1 - 設定DDNS與Virtual Server


目前有某台CentOS主機放在老家作為個人小伺服,硬碟裡面收藏了無數家珍(嘿嘿),只是就算開了NFS服務(Network File Systme)也只能在老家的區域網路內使用,回到租屋處該怎麼透過網際網路連回去呢?



首先想到,跟isp租用的浮動ip隨時都有可能更新,若客戶端是用ip直接定址,一但分享器更新了ip,我們就追蹤不到了,此時可以考慮DDNS(Dynamic DNS)的作法;另外,區網對外統一由分享器NAT(Network Address Translation轉送,所以還要再處理Forwarding的問題,這時可以考慮分享器普遍有的Virtual Server作法

Step1:
先去提供DDNS的網路服務商註冊帳號,並且申請一個網址,讓你在客戶端以"固定網址透過DNS查詢該伺服器對應的浮動ip"

No-ip這個網站來說,註冊完並設定好你期待的網域名稱後,畫面大概長這樣:




所以往後就是以example.ddns.net作為連接網址,整個運作的情境大概是:

  • 在客戶端輸入網址
  • DNS幫你轉介給No-ip
  • No-ip再用example.ddns.net這個名稱查到了對應的ip是8.8.8.8
  • 所以你最後是連到8.8.8.8開始通信

Step2:
現在我有固定網址了,接著要做的是"主動去DDNS服務商更新該網域名稱對應的ip"

在No-ip的網頁上我們可以手動登入,在該網址手動更改對應的ip,那麼現在要做的只是把這個程序給自動化

目前大部分的分享器都有DDNS的功能,可以幫你自動登入DDNS服務,並且主動回報目前使用的ip,用從中華電信租用的Zyxel P874這款分享器為例:

  1. 在區網內以https://192.168.1.1連上分享器管理介面
  2. 預設帳密來這邊
    1. DDNS設定完以後分享器就暴露在網際網路上了,預設密碼趕緊改掉
  3. 進入設定頁面Advenced Setup - DNS - Dynamic DNS
  4. 打勾"啟用動態網域名稱解析服務 "
  5. 動態網域名稱解析服務網站選擇www.no-ip.com
    1. 有很多家可以選,看你用誰的服務
  6. 帳號輸入你在www.no-ip.com登入用的帳密
  7. 主機網域名稱輸入Step1設定好的網址,例如:example.ddns.net
  8. 右下角按一下確認,設定就生效了


過一小段時間,最後我們再回到www.no-ip.com確認,檢查ip是否與分享器上的一致且下面沒有顯示

這就表示分享器DDNS開始回報ip了

也可以ping一下example.ddns.net確實確認路有有通:
#ping example.ddns.net

Step3:
因為伺服器是建設在分享器建立出的"區域網路"內,我們希望能將 從example.ddns.net發來的ssh連線要求轉發到區網內的某伺服器,此時就要用到分享器的"NAT -- Virtual Servers"功能

Virtual Server allows you to direct incoming traffic from WAN side (identified by Protocol and External port) to the Internal server with private IP address on the LAN side. The Internal port is required only if the external port needs to be converted to a different port number used by the server on the LAN side. 
簡單的說就是將ssh連線通信,從外網的 example.ddns.net:22 橋接到內網的 localhost:22,同樣以Zyxel P874為例:


  1. 進入設定頁面Advenced Setup - NAT - Virtual Servers
  2. 加入(Add)新設定
  3. Use Interface選pppoe,表示外部介面從pppoe交換
  4. Service Name選Secure Shell Server(SSH),會自動幫你在下面的表填上port號碼以及protocal
  5. Server IP Address 填內網對應的伺服器ip,比方說192.168.1.105
    1. 在此之前建議將此伺服器設定為靜態ip,以免被DHCP分配亂跑找不到
  6. 右下角按Apply/Save完成設定嚕



最後的最後,用ssh從ddns網址測試看看連不連得上伺服器吧
#ssh user@example.ddns.net




沒有留言:

張貼留言