本文首發於爛泥行天下linux
前兩篇文章咱們介紹了有關open***的搭建與配置文件的講解,這篇文章咱們再聊介紹下,在tun模式下open***客戶端如何與內網機器通訊的問題。windows
1、實際問題centos
先來介紹下目前的基本狀況,以下:服務器
一、open***服務器單網卡,經過硬件防火牆把open***服務器的1194端口映射到公網。ide
二、open***服務器所在的網段爲192.168.5.1/24網段測試
三、open***客戶端得到IP地址爲10.8.0.1/24網段spa
要求10.8.0.1/24網段能訪問192.168.5.1/24網段的服務器。3d
經過前兩篇文章,可知咱們如今的open***客戶端已經能夠正常鏈接open***服務器,可是還不能和公司內網的其餘機器進行正常通訊。以下:rest
若是open***服務器使用的是tap橋接模式的話,這個問題很容易解決,只須要在open***服務器端經過修改open***配置文件server.conf,向客戶端推送公司內網的IP地址段便可。server
可是目前,咱們公司使用的是tun模式,因此須要經過其餘手段進行解決。
其實要解決這個問題,咱們只須要進行以下兩步操做,就能夠解決這個問題。
第一步、修改open***配置文件,向客戶端推送192.168.5.1/24網段的路由。(此步能夠省略)
第二步、配置IPtables規則。
注意:以上兩步操做,第一步操做能夠沒有,可是配置IPtables規則這一步操做必定不能少。不然客戶端仍是沒法與內網機器正常通訊。
下面咱們詳細介紹這兩步的操做。
2、open***服務器配置
在《爛泥:open***配置文件詳解》這篇文章中,咱們詳細介紹了有關open***的server.conf配置文件,咱們如今須要作的就是把192.168.5.1/24網段路由推送到客戶端。具體配置以下:
push "route 192.168.5.0 255.255.255.0"
修改完畢後,咱們要重啓open***,以下:
sudo /etc/init.d/open*** restart
有關open***須要修改的配置就這麼多,下面開始配置IPtables規則。
3、配置IPtables規則
如今咱們開始配置IPtables規則,咱們須要作的就是把全部來自10.8.0.1/24網段的請求,所有經過open***服務器的eth0網卡轉發出去,也就是咱們平時所說的IPtables的NAT規則。
注意:IPtables規則是在open***服務器進行配置的,而不是open***客戶端。
IPtables NAT規則以下:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
sudo iptables -nL -t nat
以上修改完畢後,咱們啓動open***客戶端,看看是否能夠與192.168.5.1/24網段機器進行通訊。
4、測試網段之間的通訊
在open***客戶端ping192.168.5.1/24網段機器,以下:
ping 192.168.5.140
telnet 192.168.5.4 22
經過以上兩張圖,咱們能夠看出如今open***客戶端已經和內網機器正常通訊。
以上就是有關open*** tun模式下客戶端與內網機器通訊的配置過程。
在實際使用open***過程當中,咱們可能還會遇到如下還有幾個問題,再此咱們給出相應的open***配置。
5、×××的配置
有時候爲了能去國外看看,咱們會購買國外的服務器,搭建open***而後利用這臺服務器進行×××。
在open***配置中,咱們只須要在open***服務器的server.conf配置中,開啓push "redirect-gateway def1 bypass-dhcp"項便可。以下:
push "redirect-gateway def1 bypass-dhcp"
此時open***客戶端撥號後,就會發現已經國外的IP。以下:
經過上圖,咱們能夠很明顯的看到如今IP地址已經國外的了。具體如何使用,你懂的,呵呵。
6、open***客戶端linux開機啓動問題
由於項目需求,須要一臺服務器開機就要鏈接,遠程的open***服務器。若是是windows系統的很簡單,配置下就能夠了。
而在linux系統下只須要把open***客戶端鏈接open***服務器的命令寫入到/etc/rc.local文件中便可。以下:
cat /etc/rc.local
可是有一點須要特別注意,就是open***客戶端的配置文件中有關從CA證書、客戶端的證書以及客戶端密鑰文件,必定要寫成絕對路徑,而不是相對路徑,以下:
同時若是是centos系統的話,必定不要配置成在/root/目錄下開機啓動open***客戶端鏈接open***服務器。
由於通過屢次測試,這樣是不能開機open***客戶端鏈接open***服務器的。
7、給客戶端指定IP地址
有時候爲了實際項目的需求,須要給客戶端指定IP地址。那麼就能夠經過修改open***服務器的配置來達到這個要求。
只須要把server.conf文件中的開啓client-config-dir ccd,而後在/etc/open***目錄下建立ccd目錄。以下:
而後再在ccd目錄下根據不一樣的客戶端建立對應的文件,並在文件中寫入以下內容:
ifconfig-push 10.8.0.200 255.255.255.0
以上的意思就是爲client這個客戶端指定IP地址爲10.8.0.200。
如今咱們從新啓動open***服務器,而後客戶端進行鏈接。以下:
經過上圖,咱們能夠很明顯的看出。客戶端得到的IP地址確實爲10.8.0.200。
PS:以上執行是在linux系統上,通過測試發如今windows下若是給客戶端指定IP地址的話會報錯。猜測這多是一個BUG。
「51cto十週年博客活動」正在進行,你也來參加吧~ 活動地址:http://51ctoblog.blog.51cto.com/26414/1679643