将特定端口转发至 WLAN0

将特定端口转发至 WLAN0

我正在尝试连接到不允许 HTTP 访问(或任何访问,除了 RDP)的 VPN。所以基本上我想告诉我的电脑,“只对 RDP(端口 xxxx)使用 PPP0,对于其他一切,使用普通的 WLAN0”。显然这与 iptables 或路由有关,但我无法弄清楚所有选项,而且我找到的教程对我来说太模糊了。所以我的问题如下:

对于源自我的系统(Ubuntu 10.04)的请求,如何指定某些端口使用某些接口,而其他端口使用其他接口?

谢谢。

答案1

使用 IP 地址进行路由更简单。您甚至不需要 iptables。找出您想要通过 ppp0 访问的 IP 或子网,并向其添加路由(对于单个 IP,路由为 /32;对于子网,路由更小):

sudo ip route add dev ppp0 <ipv4-address>/32

不过我很惊讶您的 VPN 软件尚未设置路由。请检查ip route show

根据您的评论,您的问题不是缺少路由,而是路由太多。您似乎有一个通过 ppp0 的默认路由,您应该将其删除。

sudo ip route del $(ip route show dev ppp0 |grep default)

并将其替换为 wlan0 上的默认路由,您可以让 dhcp 设置该路由,或者如果您知道网关的 ip,则可以明确添加该路由,或者可能已经有了:

sudo ip route add default via <gateway ip of your wireless lan>

路由如下:您要向某个 IP 发送数据包。如果您要查找的 IP 与某个接口位于同一链路上,则在该链路上发送数据包。否则,查找包含该 IP 的最小子网。该子网具有网关地址(如果没有定义较小的子网,则可能是默认地址)。使用网关的 IP 返回步骤 0。

相关内容