Routing
Linux 上的 OpenVPN 和網關
我有安裝了 Debian 的家庭伺服器
當我打開 openvpn 時,它會創建新界面 -
tun0
它還為該介面添加了一些路由規則,包括
0.0.0.0/1 via 192.168.101.1 dev tun0
,但我總是刪除此規則以創建eth0
預設介面,因此預設情況下一切都通過它我想將該伺服器設置為網關,並將所有數據轉發
eth0
到tun0
然後我可以在區域網路中的任何設備上將預設網關更改為伺服器的 ip 以使用 vpn
問題是我該怎麼做?
我找到了我的問題的答案:
- 啟動 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