Ip

通過 VPN 網關路由 LAN 流量

  • April 16, 2022

我的 iMac 有連接到遠端 VPN 的軟體。它運作良好 - 但僅限於特定設備。

我現在想允許我網路上的其他設備通過 iMac 訪問相同的 VPN 連接。這樣做的原因是因為我的手機無法連接到 VPN 本身,因為它不支持 OpenVPN 協議。

我啟用了埠轉發:sysctl -w net.inet.ip.forwarding=1

我試圖將以下內容添加到/etc/pf.conf文件的第 32 行:nat on utun1 from en0:network to any -> (utun1)其中 en0 是我的乙太網埠,網際網路來自哪裡,而 utun1 是連接 vpn 後所有流量的位置

當我執行時,sudo pfctl -e -f /etc/pf.conf我收到錯誤:

/etc/pf.conf:32:規則必須按順序排列:選項、規範化、排隊、翻譯、過濾 pfctl:配置文件中的語法錯誤:未載入 pf 規則

誰能告訴我為什麼我會收到這個錯誤?我是否錯誤地使用了 nat 命令?

僅供參考 - 我一直在關注教程在 Mac OSX 上使用命令行工具設置 Internet 共享

使用的設備:

  • iMac Pro 2017 執行 10.14.5 Mojave(作為網關)
  • 執行 Android 9 的 Android S10+
  • iPhone XS
  • iPad Pro 11"

在我的家庭區域網路上,我的 iMac 連接在en0上,靜態 IP 為 192.168.1.100。我可以瀏覽網際網路,但由於我的 ISP 的防火牆,我受到了限制。我的目標是在連接到 VPN 的 iMac 上執行軟體。完成後,我將使用 iMac 作為網關,以便 LAN 上的其他設備可以通過它進行路由並使用 VPN 連接。

需要注意的是,VPN 使用 OpenVPN XOR 協議進行連接,該協議只能使用 VPN 提供商提供的自定義軟體,因此我無法將 VPN 軟體直接載入到手機或 iPad 等設備上。

我非常接近完成這項工作,我只是在某個地方錯過了一步。以下是我迄今為止的發現:

答:為了進行測試,我將 VPN 斷開,以便 iMac 可以正常瀏覽網際網路。

A1。我將手機上的 wifi 設置更改為使用靜態 IP 192.168.1.84 和自定義網關 192.168.1.100 (iMac)。我像往常一樣連接到 WLAN,但無法瀏覽。

A2。在 iMac 上,我執行sudo sysctl -w net.inet.ip.forwarding=1以啟用埠轉發,現在我可以通過 iMac 在手機上成功瀏覽網際網路。

結論:電話 -> iMac -> 網際網路正在執行

B. 現在我們再試一次,但要連接 VPN:

B1。iMac 成功連接到 VPN。很明顯,所有網際網路瀏覽現在都通過utun1進行路由。我可以通過執行 nettop 或 netstat -rn 看到這一點。

B2。手機仍使用 iMac 作為網關連接到 WLAN。但由於 VPN 已連接,瀏覽不再起作用。

B3。我添加nat on utun1 from 192.168.1.0/24 to any -> (utun1)到**/private/etc/pf.conf** 然後我執行 sudo pfctl -d 然後 ……sudo pfctl -F all 然後 我執行並且所有似乎都已正確載入。至此,我已成功瀏覽VPN,暢通無阻的網際網路。sudo pfctl -f /etc/pf.conf -e sudo pfctl -s nat

注意" 添加到 pf.conf 時,請確保在文件中的正確位置插入,因為如果程式碼位於錯誤的位置,它將無法執行。

結論:電話 -> iMac -> VPN -> 暢通無阻的網際網路正在工作

有趣的是,我在 72 小時內一直在嘗試上述相同步驟的各種組合,但收效甚微。直到現在,在我定義了流程並逐步遵循它之後,它似乎才起作用。即使重新啟動後,我也會按順序執行這些步驟,這似乎是一個可靠的過程。

下一步將是建構某種腳本,只需點擊一個圖示即可自動執行該過程——甚至可能在 iMac 啟動時執行它。

將恢復任何更新。

引用自:https://unix.stackexchange.com/questions/539107