我的 openvpn 运行良好,启动时按预期加载。但是,如果不在服务器上运行以下命令,我无法使用它转发来自客户端的流量:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
su
echo '1' > /proc/sys/net/ipv4/ip_forward
这su
是因为 sudo 不够用(即sudo echo '1' > /proc/sys/net/ipv4/ip_forward
会失败所以我必须使用su
,以 root 身份登录然后运行命令。如果您知道更好的方法,我洗耳恭听)。
我希望这一切都在启动时自动完成(因此重启后我不必通过 SSH 登录,运行命令并再次注销...我只想启动我的客户端然后运行),但不知道如何做到这一点。我正在使用 Ubuntu 10.10 Server。
*仅供参考,如果(当)他们阻止我的正常辅助 VPN(他们经常这样做),我就可以在中国境内使用这个(位于美国的......在我的客厅里)VPN。
答案1
您有一些选择(实际上,您有很多选择,但这里仅列举几个):
1) 将这些命令放入 /etc/rc.local(“exit 0”行之前)。它们将在启动时运行。
2)编写一个“openvpn-firewall”初始化脚本,让其运行这些命令,并确保它在 openvpn 启动之前运行。
3)使用 iptables-save 和 iptables-restore 来管理您的 iptables 命令,并将您的 ip_forward 放入 /etc/sysctl。
a) iptables。按照Ubuntu IPTables 维基页面,特别是“启动时配置”部分。
b) ip_forward。编辑 /etc/sysctl.conf 并找到如下行
#net.ipv4.ip_forward=1
并取消注释,使其看起来像这样:
net.ipv4.ip_forward=1
重启后,它将自动运行。