我有两个 p2p 隧道到主机 tun1 和 tun2 上的两个不同服务器:(主机是 Ubuntu 服务器 18.04)
(服务器 1:IP1)<-->(主机:IP0)<-->(服务器 2:IP2)
对于 tun1 到服务器 1,我有:
proto udp
mode p2p
remote IP1
rport 4856
local IP0
lport 4856
dev-type tun
tun-ipv6
resolv-retry infinite
dev tun1
comp-lzo
persist-key
persist-tun
cipher aes-256-cbc
ifconfig 192.168.76.2 192.168.76.3
secret /etc/openvpn/key.key
对于 tun2 到服务器 2,我有:
proto udp
mode p2p
remote IP2
rport 4857
local IP0
lport 4857
dev-type tun
tun-ipv6
resolv-retry infinite
dev tun2
comp-lzo
persist-key
persist-tun
cipher aes-256-cbc
ifconfig 192.168.77.2 192.168.77.3
secret /etc/openvpn/key.key
我想将 tun1 上接收到的数据包转发到 tun2,所以我添加了一个静态路由:
ip route add IP4/32 via 192.168.77.3
还启用了 IP 转发。
sysctl -w net.ipv4.ip_forward=1
不存在 iptables 规则。所有链都有 ACCEPT 行为。
所有隧道接口都连接到其相应的服务器并启动。当我使用 dst=IP4 从服务器 1 向隧道发送数据包时,在主机中接收到数据包,但它们没有转发到 tun2,我无法在服务器 2 中使用tcpdump
. 任何想法?
我必须明确启用
tun1
(传入流量)转发:sysctl -w net.ipv4.conf.tun1.forwarding=1
sysctl -w net.ipv4.ip_forward=1
还不够(实际上不需要)。