1. 程式人生 > >使用筆記本撥通openvpn後,筆記本不能上網的解決方法

使用筆記本撥通openvpn後,筆記本不能上網的解決方法

openvpn iptables

網上也流傳著一些,解決方法:

一:方法1:配置ip轉發,iptables規則來轉發

首先,修改openvpnserver端的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

但是問題是如果不希望通過VPN服務器tap tun,而是使用原來 PC的網絡呢?

二:方法2:修改openvpn服務端的配置文件:

vi /etc/openvpn/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配置語句。

重啟openvpn服務器:

service openvpn restart

搞定。

通過方法2,確實可以讓pc端在連接vpn後,可以正常訪問外網了,但是出現了新的問題!!!!

技術分享

開發人員,在連接vpn後,開發的程序在連接服務器的時候,出現了不能連接zookeeper的問題,而且還是在我搗鼓vpn後出現的。猜測這三個push是不能隨便註釋掉的,於是了解了openvpn的配置詳情

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

#使Client的默認網關指向VPN,讓Client的所有Traffic都通過VPN走
;push “redirect-gateway”
#DHCP的一些選項,具體查看Manual
;push “dhcp-option DNS 10.8.0.1″
;push “dhcp-option WINS 10.8.0.1″
#如果可以讓VPN Client之間相互訪問直接通過openvpn程序轉發,
#不用發送到tun或者tap設備後重新轉發,優化Client to Client的訪問效率

這裏的;push “redirect-gateway”

在pc連接後,會生成了一條默認路由如圖:

技術分享

平時,給開發的解決方案就是,連接vpn後。臨時刪除這兩條路由信息,命令如下:

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。要經常在上面查東西。所以我就趕緊找別的方法了。

經過測試,把上面的那一條註釋後,通過開發的測試,可以正常開發程序。也能正常連接網絡了。

目前還在測試中這個問題吧



下面一條命令是,vpn啟動後,啟動中使用的參數,通過service直接啟動,在通過ps查看就是這樣的

/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/server.pid --cd /etc/openvpn --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



本文出自 “圈中一鳥” 博客,請務必保留此出處http://sgk2011.blog.51cto.com/1551358/1971498

使用筆記本撥通openvpn後,筆記本不能上網的解決方法