•
(以下内容供维护人员参考)
/etc/openvpn/post-server-up.sh是用来维护openvpn相关路由表的脚本。在openvpn进程启动时运行。
但由于脚本内部存在诸多重复内容,并且和启动脚本也有重复。致使运行缓慢,且维护难度大。现已借助环境变量重写了这部分脚本。原始脚本参见这里。
修改后:
<br></br>#获得CIDR格式的ipv4网段<br></br>subnet=$(netmask ${ifconfig_local}/${ifconfig_netmask} | awk '{print $1;}')<br></br>#增加到客户端的ipv4路由<br></br>ip route replace $subnet via $ifconfig_local dev $dev table 1002<br></br>#获得ipv6的网段<br></br>subnet6=$(ip -6 addr show dev $dev | grep inet6 | awk '{print $2}' | sed 's/\/64/\/96/')<br></br>#增加到客户端的ipv6路由<br></br>ip -6 route add $subnet6 dev $dev table 1002<br></br>#更新ipv6的neighbour<br></br>seq 0 255 | awk "{ printf \"neigh add proxy ${ifconfig_ipv6_local%:0:1}:1:%x dev eth0\n\", \$0 }" | ip --batch -<br></br>
同时,相关的策略路由规则被移动到开机脚本/srv/smartproxy/blog-specific/ip-rules中。
感谢boj关于”ip –batch”用法的建议