Linux 上的 OpenVPN 和网关

Linux 上的 OpenVPN 和网关

我的家庭服务器安装了 Debian

当我打开 openvpn 时,它会创建新的界面 -tun0

它还为该接口添加了一些路由规则,包括0.0.0.0/1 via 192.168.101.1 dev tun0,但我总是删除此规则以使其成为eth0默认接口,因此默认情况下一切都通过它进行

我想将该服务器设置为网关,并使所有数据从转发eth0tun0

然后我可以在局域网中的任何设备上将默认网关更改为服务器的 ip,以使用 vpn

问题是我该如何做到这一点?

答案1

我找到了我的问题的答案:

  • 启动 OpenVPN:

openvpn --config /path/to/config.file &

  • 等待连接成功:

until ip l sh tun0 >/dev/null 2>&1 ; do sleep 1; done

  • 删除制定默认接口的规则tun0

ip route del 0.0.0.0/1 via 192.168.101.1 dev tun0

  • 启用IP转发:

sysctl -w net.ipv4.ip_forward=1

  • 启用并配置 NAT:

iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

相关内容