Tomato OpenVPN 用戶端轉送設置

Tomato OpenVPN 用戶端轉送設置

我僅使用 VPN 來獲取專用/靜態 IP(因為我的家庭網路由於其電纜而具有動態 IP)。我不關心隱藏我的身分等。

我想要的是,當流量進入 VPN IP 並到達我的路由器時,根據流量來自的 IP,它會被重新導向到我的家庭網路中的特定裝置。我的網路中的每個裝置都分配了一個靜態IP,過去我使用了不同的VPN,該VPN 使用PPTP,並且剛剛工作,例如Tomato 的正常連接埠轉送規則運作良好,並且根據流量的來源,它會自動路由到連接到我的路由器的正確裝置。

但是現在我使用的 VPN 使用 OpenVPN 而不是 PPTP,Tomato 中的連接埠轉送規則似乎不再運作?我無法根據連接埠號碼和發送請求的 IP 來確定如何將流量傳送到家庭網路中的正確裝置。我注意到 Tomato 中 OpenVPN 用戶端設定頁面中的「路由策略」選項卡,但這對我來說毫無意義。

我需要在 Tomato 中的某個位置添加某種腳本嗎?一些 iptables 規則什麼的?這看起來很奇怪,我不能只使用番茄中的連接埠轉送設定頁面。或者我只需要啟用/停用 OpenVPN 用戶端設定頁面中的某些選項?我超出了我的深度,任何建議將不勝感激

答案1

我認為我的Reddit 上的問題可能對你有幫助。

我將在這裡複製它:

所以,在查看之後提供 VPN 的協會,我們最終得到了以下解決方案。


  1. 若要儲存空間將在 VPN 啟動(啟動)時執行的自訂腳本,請使用瀏覽器啟用 JFFS:http://192.168.1.1/admin-jffs2.asp。儲存設置,一些服務將重新啟動(/jffs/將被掛載)。

  2. 在路由器中 Telnet:

    telnet 192.168.1.1
    
  3. 使用您通常用於存取 Tomato 的登入名稱root和密碼。

  4. 在 /jffs/ 中建立並編輯腳本:

    vi /jffs/vpnup.sh
    
  5. 將以下內容新增至腳本:

    #!/bin/sh
    
    # Script to be run when the VPN is brought up
    
    # Use the VPN to route all packets through the tunnel.
    iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d YYY.YYY.YYY.YYY -j WANPREROUTING
    
    # Apply the port forwarding rules to the tunnel.
    iptables -I FORWARD 1 -i tun11 -s 0.0.0.0/0 -d 0.0.0.0/0 -m state --state NEW -j wanin
    
  6. Esc透過鍵入, :, w, q, then儲存並退出 vi Enter

  7. 使腳本只能由 root 讀取和執行:

    chmod 700 /jffs/vpnup.sh
    
  8. 退出 telnet 會話:

    exit
    
  9. 將以下行新增至「自訂配置」表單控制項:http://192.168.1.1/vpn-client.asp,在“高級”選項卡中:

    up /jffs/vpnup.sh
    
  10. 儲存設定。

  11. (重新)啟動您的 VPN。

每次啟動 VPN 時,iptables 現在都應該更新以透過 VPN 路由所有流量,並將連接埠轉送規則套用至其隧道。

一些有用的調試命令:

  • ip addr show(關於路由器
  • ip route show(關於路由器
  • iptables -nvL(關於路由器
  • iptables -t nat -nvL(關於路由器
  • tcpdump -ni any port 80(關於伺服器

我希望這會有所幫助或將會有所幫助。

相關內容