Routing

Linux 上的 OpenVPN 和網關

  • August 27, 2015

我有安裝了 Debian 的家庭伺服器

當我打開 openvpn 時,它會創建新界面 -tun0

它還為該介面添加了一些路由規則,包括0.0.0.0/1 via 192.168.101.1 dev tun0,但我總是刪除此規則以創建eth0預設介面,因此預設情況下一切都通過它

我想將該伺服器設置為網關,並將所有數據轉發eth0tun0

然後我可以在區域網路中的任何設備上將預設網關更改為伺服器的 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

引用自:https://serverfault.com/questions/717250