我有一个情况:
- 一台装有 debian (K) 的计算机连接到路由器 (A),该路由器分配网络 192.168.1.0/24。
- 还有另一个路由器 (B)(它有一个“白色”IP),它分配网络 172.16.1.0/30,在该网络上运行 pptp 服务器,并启用 NAT。
- pptp 客户端安装在“K”上,它使用 ip 172.16.1.2 创建 ppp1 接口(但由于某种原因,掩码 / 32 也在从 / 32 到显然“到节点”的keenetic(“B”)路由上”)。
- 连接通过,并且 ping 通。问题是“三角”路线(嗯,我仍然认为是)。
- 当我从网络“A”连接到“K”(例如 SSH)时,一切正常(eth0 - 网络“A” - 默认路由)。
- 路由器“B”上有 nat,将来自互联网(到某些端口)的连接转发到“K”。
- 仅在包中“源”不会更改为路由器具有的源。
- 然而,这并不能完全解决问题,因为“K”有 http-proxy,其任务是将流量从 eth0 发送到 ppp1。
- 在代理设置(3proxy)中,我指定了“输入”和“输出”ip。
也许应该有效,但不起作用。更改默认路由不是一个选项,因为通过 eth0 访问互联网速度快了 7 倍 + 计划在同一台计算机上安装另一个 openvpn 服务器,该服务器将接受来自 ppp1 的连接,并通过 eth0 本身创建连接。
如果配置:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.20 netmask 255.255.255.0 broadcast 192.168.1.255
ether 02:02:20:02:47:8f txqueuelen 1000 (Ethernet)
RX packets 5248 bytes 343827 (335.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 512 bytes 54725 (53.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 37
ppp1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1350
inet 172.16.1.2 netmask 255.255.255.255 destination 172.16.1.1
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 8 bytes 118 (118.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 8 bytes 99 (99.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
/etc/3proxy/3proxy.cfg:
setgid 115
setuid 109
#nserver 192.168.1.1
nserver 172.16.1.1
nscache 65536
timeouts 1 5 30 60 180 1800 15 60
#In theory, from this point on, traffic should go through the ppp1 interface.
external 172.16.1.2
internal 192.168.1.20
users $/etc/3proxy/.proxyauth
daemon
log /var/log/3proxy/3proxy.log D
logformat "- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T"
auth cache strong
proxy -n -p8080 -a
还有更多:3proxy 发送的 DNS 流量通过 ppp1 自由发送(发送和返回)(使用 tcpdump 监视)。
答案1
这可能是由于代理中缺少正确的模块;负责“natin”pptp 的模块。请尝试以下操作:
lsmod |grep nf_nat_pptp
如果该模块不存在,您必须输入:
modprobe nf_nat_pptp
echo 'net.netfilter.nf_conntrack_helper=1' >> /etc/sysctl.conf
sysctl -p
通过这些更改,pptp 流量应通过代理。
要永久启用该模块以供将来重新启动,您必须通过以下方式将其添加到模块文件中:
echo 'nf_nat_pptp' >> /etc/modules