网上也流传着一些,解决方法:

一:方法1:配置ip转发,iptables规则来转发

首先,修改open***server端的ip转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

然后配置iptables,使用NAT技术

iptables -t nat -A POSTROUTING -s 192.168.123.0/24 -o eth0 -j MASQUERADE

但是问题是如果不希望通过×××服务器tap tun,而是使用原来 PC的网络呢?

二:方法2:修改open***服务端的配置文件:

vi /etc/open***/server.conf
找到以下类型语句:
push "route 192.168.5.0 255.255.255.0"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 202.106.0.20"
把它们注释掉
;push "redirect-gateway def1 bypass-dhcp"
;push "route 192.168.5.0 255.255.255.0"
;push "dhcp-option DNS 202.106.0.20"

意思是不要重建client的网关 路由 DNS。仔细检查push配置语句。

重启open***服务器:

service open*** restart

搞定。

通过方法2,确实可以让pc端在连接***后,可以正常访问外网了,但是出现了新的问题!!!!

wKiom1neUTaj0Y8eAAAeu69W63Y934.png

开发人员,在连接***后,开发的程序在连接服务器的时候,出现了不能连接zookeeper的问题,而且还是在我捣鼓***后出现的。猜测这三个push是不能随便注释掉的,于是了解了open***的配置详情

http://ppp1013.blog.51cto.com/927700/530659

#使Client的默认网关指向×××,让Client的所有Traffic都通过×××走
;push “redirect-gateway”
#DHCP的一些选项,具体查看Manual
;push “dhcp-option DNS 10.8.0.1″
;push “dhcp-option WINS 10.8.0.1″
#如果可以让××× Client之间相互访问直接通过open***程序转发,
#不用发送到tun或者tap设备后重新转发,优化Client to Client的访问效率

这里的;push “redirect-gateway”在pc连接后,会生成了一条默认路由如图:

wKioL1nd40SBAa7sAAB2kBvonPM715.png

平时,给开发的解决方案就是,连接***后。临时删除这两条路由信息,命令如下:

route delete 0.0.0.0 mask 128.0.0.0
route delete 128.0.0.0 mask 128.0.0.0

但是今天老大,发话了。说执行了上面的临时命令,但是打不开cn.bing.com。要经常在上面查东西。所以我就赶紧找别的方法了。

经过测试,把上面的那一条注释后,通过开发的测试,可以正常开发程序。也能正常连接网络了。

目前还在测试中这个问题吧



下面一条命令是,***启动后,启动中使用的参数,通过service直接启动,在通过ps查看就是这样的

/usr/sbin/open*** --daemon --writepid /var/run/open***/server.pid --cd /etc/open*** --config server.conf --script-security 2


方法一,也使用了,通过直接添加iptables那条命令没有好用。由于已经有了很多规则,所以没有执行下面的命令来重新尝试

iptables -F , 
iptables -X
 iptables -Z,
  然后 
  iptables -t nat -A POSTROUTING -s 10.8.0.0/24  -j MASQUERADE
   /etc/init.d/iptables save