Tomato OpenVPN 客户端转发设置

Tomato OpenVPN 客户端转发设置

我使用 VPN 只是为了获得专用/静态 IP(因为我的家庭网络有动态 IP,因为它的电缆)。我不在乎隐藏我的身份等。我在运行 Tomato 固件的路由器上使用 OpenVPN 客户端设置了 VPN。

我想要的是,当流量进入 VPN IP 并到达我的路由器时,根据流量来自的 IP,它会被重定向到我家庭网络中的特定设备。我的网络中的每个设备都分配有一个静态 IP,过去我使用过使用 PPTP 的不同 VPN,而且它刚好起作用,例如 Tomato 的常规端口转发规则运行良好,并且根据流量来自何处,它会自动路由到连接到我的路由器的正确设备。

但是现在我使用的 VPN 使用 OpenVPN 而不是 PPTP,看来 Tomato 中的端口转发规则不再起作用了?我不知道如何根据端口号和发送请求的 IP 将流量发送到家庭网络中的正确设备。我注意到 Tomato 中 OpenVPN 客户端设置页面中的“路由策略”选项卡,但这对我来说毫无意义。

我需要在 Tomato 的某个地方添加某种脚本吗?一些 iptables 规则之类的?我不能直接使用 Tomato 中的端口转发配置页面,这似乎很奇怪。或者我只需要启用/禁用 OpenVPN 客户端配置页面中的某些选项?我对此并不了解,任何建议都将不胜感激

答案1

我认为我的Reddit 上的问题可能会对你有帮助。

我将在这里重复一下:

因此,在查看了提供 VPN 的协会,我们最终得到了以下解决方案。


  1. 要存储在 VPN 启动时运行的自定义脚本,请使用浏览器启用 JFFShttp://192.168.1.1/admin-jffs2.asp. 保存设置,部分服务将会重新启动(/jffs/ 将会被挂载)。

  2. 路由器上的 Telnet:

    telnet 192.168.1.1
    
  3. root使用您通常用于访问 Tomato 的密码登录。

  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然后保存并退出 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(在服务器

我希望这会有所帮助或会有所帮助。

相关内容