如何通过 pptp vpn 隧道发送数据包?

如何通过 pptp vpn 隧道发送数据包?

我正在尝试通过我的 ppp0 接口发送某些端口流量,这是一个 pptp vpn 隧道,

首先,我使用无线 USB 接口,我连接到我的接入点,然后我启动我的 VPN,有一个连接,但我不会通过它来传输所有连接,也不想这样做,所以,假设我想通过我的 VPN(接口 dev ppp0)传输所有端口 80 数据包。

我第一次运行:

iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0xa

为了标记正确的数据包,我添加了一个名为 vpn_table 的表,然后添加

ip route add default dev ppp0 table vpn_table

当我这样做时,流量开始通过 ppp0,但没有加载任何页面。我想我一定造成了某种冲突,或者我在 vpn_table 中添加的路由不太正确。

我不确定,我认为我正确地标记了数据包,但我也不确定。

更新:我想我已经解决了部分问题:运行 tcpdump -i ppp0 显示确实有通过 ppp0 发出的请求,但现在却没有任何响应,而且页面无法通过该界面加载……我仍然遗漏了一些东西。

答案1

我终于解决了这个问题,我会尝试为其他人发布精确的说明:

ip address show:

vpn地址是192.191.145.5

一些相关信息:

39: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1400 qdisc pfifo_fast state UNKNOWN qlen 3
link/ppp 
inet 10.20.0.42 peer 10.20.0.1/32 scope global ppp0

ip 路由显示表本地本地 10.20.0.42 dev ppp0 proto 内核范围主机 src 10.20.0.42

附加命令:

iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
ip route add 10.20.0.1/32 dev ppp0 table vpn_table
ip route add 0.0.0.0/1 via 10.20.0.42 dev ppp0 table vpn_table
ip route add 192.191.145.5 via 10.20.0.42 dev ppp0 table vpn_table

这就是 vpn 表中所需要的

此命令

sysctl -w net.ipv4.conf.ppp0.rp_filter=2 is really imporant

否则你将不会收到回复

与此相同:

ip route flush cache

我希望这对某些人有帮助!

相关内容