我們該如何協助您?

主題

使用 NordVPN 設定 OpenWrt

NordVPN 支援 OpenWrt 嗎?

據消息指出,搭載 OpenWrt 韌體的路由器支援 NordVPN 等 VPN 服務。 然而,請注意以下設定尚未經過 NordVPN 員工的測試,而是由我們出色的客戶分享並測試出來的流程。 NordVPN 在此特別感謝 OpenWRT 社群的活躍成員 ulmwind,感謝他們持續協助並提供我們最新的 OpenWRT 說明。

本文提供兩種 OpenWrt 設定指南:

如果遇到任何問題,歡迎隨時聯絡我們的支援團隊取得近一步協助! 此為進階教學,但同時也提供一些較為簡易的使用說明。

GUI 操作說明

本指南將介紹如何透過 LuCI 網頁介面,在使用 OpenWrt 韌體的路由器設定 NordVPN 連線。 

  1. 在網際網路瀏覽器輸入 OpenWrt 路由器本機 IP 位址,然後登入其 LuCI 介面。 預設 IP 位址為192.168.1.1,而使用者名稱為root

    1 (8).png

    預設情況下並無設定密碼,因此此欄位可以留白。不過登入時,您將會收到一則關於設定密碼的訊息。
    image__17_.png

    如欲設定密碼,請點選「系統 (System)」 > 「管理 (Administration)」,在該處即可設定密碼。
  2. 登入後,選擇**「系統 (System)」分頁,並選擇「軟體 (Software)」。

    2 (10).png

  3. 點選「更新清單 (Update lists)」按鈕,等待流程完成並點選「忽略 (Dismiss)」
  4. 「篩選 (Filter)」欄位輸入以下套件的名稱,並點選「安裝… (Install…)」即可。
    1. openvpn-openssl
    2. ip-full
    3. luci-app-openvpn

      3 (7).png

      \
      
    
  5. 點選「儲存並套用 (Save & Apply)」,並重新整理路由器頁面。 現在應能看到名為「VPN」的新分頁。 點選該分頁,並從下拉式選單中選擇「OpenVPN」
  6. 現在您需要下載 OpenVPN 用戶端設定檔。 您可透過 Nord 帳戶連線至推薦的伺服器。

按照以下步驟找到手動連線設定檔

  1. 登入Nord 帳戶,然後點選「NordVPN」



  2. 向下捲動至「進階設定」,並點選「手動設定 NordVPN」



  3. 選擇「OpenVPN 設定檔」分頁。



  4. 使用**「搜尋列」進行搜尋,或向下捲動,點選「下載 UDP」「下載 TCP」進行下載,找到想連線的伺服器。



  5. 手動連線至OpenVPNIKEv2時,在「服務憑證」分頁上,您將需要使用使用者名稱密碼



本指南將依教學目的使用us5104.nordvpn.com伺服器。

  1. 「OVPN 設定檔上傳(OVPN configuration file upload)」專區的*執行體名稱 (Instance name)」欄位中,為 VPN 連線命名(我們將其命名為「nordvpn_us」)。然後,點選「選擇檔案 (Choose File)」按鈕,找到下載好的伺服器檔案,並點選「上傳 (Upload)」**。

    5 (1).png

  2. 「OpenVPN 執行體 (OpenVPN instances)」專區,點選剛建立好執行體旁邊的「編輯 (Edit)」按鈕。

    7 (2).png

  3. 在下方欄位內,分別於不同行輸入 NordVPN 服務的使用者名稱和密碼。 使用者名稱
    密碼

    9.png

    您只要前往Nord 帳戶儀表板,就能找到自己的 NordVPN 服務憑證(服務使用者名稱和服務密碼):

請按照以下步驟找到手動連線設定的服務憑證

  1. 登入Nord 帳戶,按一下**「NordVPN」,然後在 「手動設定」中點選「服務憑證」。在這裡可以找到手動連線必須用到的使用者名稱密碼**。



  2. 現在,複製包含帳密欄位正上方給出的憑證檔案路徑,並將其貼至上方「Config file」專區中的「auth-user-pass」行旁邊。
畫面應如下所示:auth-user-pass /etc/openvpn/nordvpn\_us.auth  


11.png

  1. 點選位於底部的「儲存 (Save)」按鈕。
  2. 點選頁面頂部的「網路 (Network)」分頁,並選擇「介面 (Interfaces)」
  3. 選擇「加入新介面… (Add new interface…)」並將其命名為「nordvpntun」
  4. 點開「通訊協定 (Protocol)」下拉式選單,並選擇「未託管 (Unmanaged)」
  5. 「介面 (Interface)」下拉式選單中,於底部的 -- custom -- 欄位中輸入名稱「tun0」,按下「確認 (Enter)」鍵。

    13.png

  1. 點選「建立介面 (Create interface)」欄位和「儲存 (Save)」按鈕。
  2. 再次選擇位於頂部的「網路 (Network)」,然後前往「防火牆 (Firewall)」專區。
  3. 點選「新增 (Add)」並調整如下:```
  4. 將其命名為「vpnfirewall」
2.  將「輸入 (Input)」選項設定為「拒絕 (Reject)」;
3.  將「輸出 (Output)」保持為「接受 (Accept)」「轉發 (Forward)」保持為「拒絕 (Reject)」;
4.  選取「偽裝 (Masquerading)」選項;
5.  選取「MSS 箝制 (MSS clamping)」選項;
6.  從「已覆蓋網路 (Covered Networks)」下拉式選單中選擇「nordvpntun」;
7.  在「允許從來源區域轉發 (Allow forward from source zones)」下拉式選單中,選擇「區域網路 (lan)」;
8.  按一下「儲存 (Save)」按鈕。
```

![](https://support.nordvpn.com/hc/article_attachments/20340176414737)

19. 在\*\*「區域 (Zones)」專區中,找到名為「區域網路 (lan)」的區域並點選「編輯 (Edit)」\*\*按鈕。

![](https://support.nordvpn.com/hc/article_attachments/20340163882001)

20. 在\*\*「允許轉發至目的地區域 (Allow forward to destination zones)」下拉式選單中,選取「nordvpntun」\*\*條目。

![](https://support.nordvpn.com/hc/article_attachments/20340225368465)

21. 再次點選位於頁面頂部的\*\*「網路 (Network)」,然後從下拉式選單中選擇「DHCP 與 DNS (DHCP and DNS)」\*\*。
22. 在\*\*「一般設定 (General Settings)」分頁找到「DNS 轉發 (DNS forwardings)」選項,並在那裡輸入 NordVPN DNS 位址。 位址為:103.86.96.100103.86.99.100\*\*

![](https://support.nordvpn.com/hc/article_attachments/20340176423057)

23. 前往\*\*「Resolve 與 Host 檔案 (Resolv and Hosts Files)」分頁,選取「忽略 Resolve 檔案 (Ignore resolve file)」方塊,然後點選「儲存並套用 (Save & Apply)」\*\*按鈕。

![](https://support.nordvpn.com/hc/article_attachments/20340192693649)

24. 最後,請返回\*\*「VPN」\*\* > \*\*「OpenVPN」\*\*分頁。
25. 在\*\*「OpenVPN 執行體 (OpenVPN instances)」專區中,選取選單中位於 NordVPN 選項旁的「已啟用 (Enabled)」選項,並點選「儲存並套用 (Save & Apply)」\*\*按鈕。

![](https://support.nordvpn.com/hc/article_attachments/20340208237585)

26. 點選已建立 NordVPN 執行體 (instance) 旁的\*\*「啟動 (Start)」\*\*按鈕來連線至 VPN 伺服器。

按照以上說明操作後,您應該能使用已完成的連線設定成功連線。 若想查看是否成功連線,請造訪 NordVPN 的首頁,位於頁面頂部的狀態應顯示為\*\*「受保護」\*\*

如欲中斷 VPN 連線,可點選位於\*\*「VPN」\*\* > 「OpenVPN」 > \*\*「OpenVPN instances」專區內 NordVPN 選項旁的「Stop」\*\*按鈕。

## CLI 操作說明

若在尋找更進階的教學,請按照本指南進行操作。 若要取得 VPN 在 OpenWrt 上的優勢,所使用的路由器需要搭載 OpenWrt 韌體和已啟用的 OpenVPN 用戶端。 韌體主頁為[https://openwrt.org/](https://openwrt.org/)。

1. 若要開始進行操作,必須先使用路由器的區域網路 IP 位址,透過 SSH 來存取路由器。 預設情況下,IP 位址設為192.168.1.1,使用者名稱為root。不過,如果您曾變更過任何一個預設值,IP 位址可能會有差異。
2. 在預設情況下,OpenVPN 套件並不包含在韌體映像中。 如欲安裝此套件,請執行以下指令:

    opkg update\
    opkg install openvpn-openssl\
    opkg install ip-full

    此外,您也可以安裝 OpenVPN 設定的 LuCI 元件,不過此元件為選擇性安裝。 您可以執行這串指令來進行安裝:

    opkg install luci-app-openvpn
3. 安裝好 OpenVPN 套件後,若希望套件在路由器開機時自動執行,可執行以下命令:

    /etc/init.d/openvpn enable
4. 接著,您將需要下載伺服器設定檔。

按照以下步驟找到手動連線設定檔:

1. 登入[Nord 帳戶](https://my.nordaccount.com/zh-tw/),然後點選\*\*「NordVPN」\*\*。

    ![](https://support.nordvpn.com/hc/article_attachments/29576660126097)

2. 向下捲動至\*\*「進階設定」,並點選「手動設定 NordVPN」\*\*。

    ![](https://support.nordvpn.com/hc/article_attachments/29576650929681)

3. 選擇\*\*「OpenVPN 設定檔」\*\*分頁。

    ![](https://support.nordvpn.com/hc/article_attachments/29576660144657)

4. 使用\*\*「搜尋列」進行搜尋,或向下捲動,點選「下載 UDP」「下載 TCP」進行下載,找到想連線的伺服器。

    ![](https://support.nordvpn.com/hc/article_attachments/29576660154385)

5. 手動連線至OpenVPNIKEv2時,在\*\*「服務憑證」分頁上,您將需要使用使用者名稱密碼\*\*。

    ![](https://support.nordvpn.com/hc/article_attachments/29576660160657)

6. 本指南使用了伺服器\*\*「uk2054.nordvpn.com」\*\*,但您應該使用網站推薦的伺服器。

    若要下載伺服器檔案,請選擇想連線的國家/地區,並點選「顯示可用的通訊協定 (Show available protocols)」,右鍵按一下「OpenVPN TCP」或「OpenVPN UDP」的「下載設定檔 (Download config)」,並選擇「複製連結位址 (Copy link address)」。

    然後返回 SSH 工作階段,並執行以下指令:

    wget -P /etc/openvpn [https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn](https://downloads.nordcdn.com/configs/files/ovpn_udp/servers/uk2054.nordvpn.com.udp.ovpn)

    不過,請確保使用為特定的伺服器檔案所複製的連結。 這串指令會將設定檔下載至\*\*「/etc/openvpn」\*\*目錄,方便快速存取。

    或者,您可以將伺服器設定檔下載至不同的裝置上,並使用替代方式(例如 SCP 或 SFTP 通訊協定),將其轉移至 OpenWrt 路由器。

    _如為舊版 OpenWrt:_\
    您可以在此下載檔案[https://downloads.nordcdn.com/configs/archives/certificates/servers.zip](https://downloads.nordcdn.com/configs/archives/certificates/servers.zip)。 在下載好的檔案中,您會找到 .crt 和 .key 副檔名的對應檔案。 這些是每個 VPN 伺服器的特有檔案。

7. 每當 OpenVPN 啟動時,NordVPN 的 OpenVPN 設定會要求您輸入 NordVPN 服務的使用者名稱和密碼。 不過,我們將進行一些調整,好讓程式之後會自動填入帳密。

    為了讓流程更加簡便,請先執行以下指令來安裝nano文字編輯器:

    opkg install nano

    或者,您也可以使用內建的vi文字編輯器。 更多關於文字編輯器的資訊,請參閱此文:[https://openwrt.org/docs/guide-user/base-system/user.beginner.cli](https://openwrt.org/docs/guide-user/base-system/user.beginner.cli)。

    現在,請使用 nano 文字編輯器開啟下載好的伺服器設定檔。 在本範例中的指令為:

    nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn

    然後,將單字「secret」(不含引號)添加至字串「auth-user-pass」尾端。 最後整串文字應如下所示:

    auth-user-pass secret。

    現在,我們需要建立一個名為 _secret_ 的新檔案,並將 NordVPN 的服務憑證儲存於其中。 為此,請執行以下指令:

    nano /etc/openvpn/secret

    此操作將建立新檔案,接著請用 nano 文字編輯器開啟該檔案。

    在檔案的第一行中,請輸入 NordVPN 服務使用者名稱,並在第二行輸入 NordVPN 服務密碼。

    您只要前往[Nord 帳戶儀表板](https://my.nordaccount.com/dashboard/nordvpn/),就能找到自己的 NordVPN 服務憑證(服務使用者名稱和服務密碼)

請按照以下步驟找到手動連線設定的服務憑證:

1. 登入[Nord 帳戶](https://my.nordaccount.com/zh-tw/),按一下\*\*「NordVPN」,然後在
    「手動設定」中點選「服務憑證」。在這裡可以找到手動連線必須用到的使用者名稱密碼\*\*。

    ![](https://support.nordvpn.com/hc/article_attachments/29576660160657)

2. 以下兩種方式均可使用下載的設定檔設定 OpenVPN:
    1. 將檔案的副檔名從\*\*.ovpn變更為.conf\*\*,這麼一來,OpenVPN 就能透過副檔名自動找到檔案。

        為此,可以使用mv指令:

        mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf
    2. 使用以下的「uci」指令,將檔案名稱指定為「/etc/config/openvpn」:

        uci set openvpn.nordvpn=openvpn\
        uci set openvpn.nordvpn.enabled='1'\
        uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'\
        uci commit openvpn

        之後,「/etc/config/openvpn」檔案結尾應已新增以下字串:

        config openvpn 'nordvpn'\
        option enabled '1'\
        option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'

        如欲進行確認,請執行這串指令:

        tail /etc/config/openvpn

        您也可以將檔案的副檔名從\*\*.ovpn改為.conf\*\*,並於「/etc/config/openvpn」檔案中指定該副檔名。但如為這種情況,OpenVPN 僅會使用該設定檔啟動一次。

3. 請執行以下指令,建立新網路介面:

    uci set network.nordvpntun=interface\
    uci set network.nordvpntun.proto='none'\
    uci set network.nordvpntun.ifname='tun0'\
    uci commit network

    在所有流程均正確進行的情況下,「/etc/config/network」檔案結尾應已新增以下字串:

    config interface 'nordvpntun'\
    option proto 'none'\
    option ifname 'tun0'

    您可使用tail /etc/config/network指令進行檢查。

4. 透過執行以下指令建立新防火牆區域,並新增從區域網路轉發至 VPN 的規則:

    uci add firewall zone\
    uci set firewall.@zone\[-1\].name='vpnfirewall'\
    uci set firewall.@zone\[-1\].input='REJECT'\
    uci set firewall.@zone\[-1\].output='ACCEPT'\
    uci set firewall.@zone\[-1\].forward='REJECT'\
    uci set firewall.@zone\[-1\].masq='1'\
    uci set firewall.@zone\[-1\].mtu\_fix='1'\
    uci add\_list firewall.@zone\[-1\].network='nordvpntun'\
    uci add firewall forwarding\
    uci set firewall.@forwarding\[-1\].src='lan'\
    uci set firewall.@forwarding\[-1\].dest='vpnfirewall'\
    uci commit firewall

    如果步驟正確執行,「/etc/config/firewall」檔案結尾應已新增以下字串:

    config zone\
    option name 'vpnfirewall'\
    option input 'REJECT'\
    option output 'ACCEPT'\
    option forward 'REJECT'\
    option masq '1'\
    option mtu\_fix '1'\
    list network 'nordvpntun'

    config forwarding\
    option src 'lan'\
    option dest 'vpnfirewall'

    您可透過執行tail -13 /etc/config/firewall指令來進行檢查, 這將顯示最後 13 行文字,包含前面所提到的字串。

5. 現在必須設定 DNS 伺服器。 最簡單的方法是使用 NordVPN DNS 作為路由器的廣域網路 (WAN) 介面。 若要新增 NordVPN DNS,請執行以下指令:

```
uci set network.wan.peerdns='0'  
```

```
uci del network.wan.dns  
uci add\_list network.wan.dns='103.86.96.100'  
uci add\_list network.wan.dns='103.86.99.100'  
uci commit  
  
_執行_ _uci del network.wan.dns_ _指令時,如果收到錯誤訊息「__uci: Entry not found__」,請忽略。_  
  
「/etc/config/network」檔案應包含「wan」區塊。並於檔案底端新增三條字串:  
  
config interface 'wan'  
<...>  
option peerdns '0'  
list dns '103.86.96.100'  
list dns '103.86.99.100'  
  
您可以透過執行cat /etc/config/network指令進行檢查,並在輸出資料中找到「wan」介面。  
  
也可以執行以下指令來新增不同的 DNS 位址,例如 Google 的 DNS 位址:  
  
uci set network.wan.peerdns='0'  
uci del network.wan.dns  
uci add\_list network.wan.dns='8.8.8.8'  
uci add\_list network.wan.dns='8.8.4.4'  
uci commit  
  
結尾新增的字串應與先前的類似。  
 
```

\*\*(選用)\*\*為避免在 VPN 通道連線中斷時發生流量外洩,您可以使用文字編輯器打開「/etc/firewall.user」檔案,並在檔案中新增以下內容:

\# This file is interpreted as a shell script.

\# Put your custom iptables rules here, and they will be executed with each firewall (re-)start

\# Internal uci firewall chains are flushed and recreated on reload, so

\# put custom rules into the root chains, e.g. INPUT or FORWARD, or into the

\# special user chains, e.g. input\_wan\_rule or postrouting\_lan\_rule.

if (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then

iptables -I forwarding\_rule -j REJECT

fi

此外,您應該透過執行nano /etc/hotplug.d/iface/99-prevent-leak指令,在「/etc/hotplug.d/iface」資料夾中建立一個名為「99-prevent-leak」的檔案,並在檔案中新增以下內容:

#!/bin/sh

if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (iptables -C forwarding\_rule -j REJECT); then

iptables -D forwarding\_rule -j REJECT

fi

if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then

iptables -I forwarding\_rule -j REJECT

fi

在某些情況下,OpenVPN 連線可能會當掉,而連線日誌中會出現類似「couldn’t resolve host…」的內容。 在這種情況,VPN 通道仍持續存在,但是 VPN 會斷線。 若要自動重新連線,請先使用文字編輯器開啟「/etc/rc.local」檔案,並新增以下文字:

/etc/openvpn/reconnect.sh &

此外,您必須在「/etc/openvpn」目錄中建立「reconnect.sh」檔案。 執行nano /etc/openvpn/reconnect.sh指令即可建立該檔案。

請在檔案中輸入以下程式碼:

#!/bin/sh

n=10

while sleep 50; do

t=$(ping -c $n 8.8.8.8 | grep -o -E '\[0-9\]+ packets r' | grep -o -E '\[0-9\]+')

if \[ "$t" -eq 0 \]; then

/etc/init.d/openvpn restart

fi

done

按照以上說明操作後,您應該能使用已完成的連線設定成功連線。 若想查看是否成功連線,請造訪 NordVPN 的首頁,位於頁面頂部的狀態應顯示為「受保護」。

如想中斷 VPN 連線,請執行以下指令:

service openvpn stop
其他語言版本: Dansk, Deutsch, English, Español, Italiano, 日本語, 한국어, Norsk, Polski, Português Brasileiro, Svenska
本文是否有幫助?
謝謝!