【我的技術我做主】爛泥:open*** tun模式下客戶端與內網機器通信

本文首發於爛泥行天下

前兩篇文章我們介紹了有關open***的搭建與配置文件的講解,這篇文章我們再聊介紹下,在tun模式下open***客戶端如何與內網機器通信的問題。

一、實際問題

先來介紹下目前的基本情況,如下:

1、open***服務器單網卡,通過硬件防火牆把open***服務器的1194端口映射到公網。

2、open***服務器所在的網段爲192.168.5.1/24網段

3、open***客戶端獲得IP地址爲10.8.0.1/24網段

要求10.8.0.1/24網段能訪問192.168.5.1/24網段的服務器。

通過前兩篇文章,可知我們現在的open***客戶端已經可以正常連接open***服務器,但是還不能和公司內網的其他機器進行正常通信。如下:

clip_image001

如果open***服務器使用的是tap橋接模式的話,這個問題很容易解決,只需要在open***服務器端通過修改open***配置文件server.conf,向客戶端推送公司內網的IP地址段即可。

但是目前,我們公司使用的是tun模式,所以需要通過其他手段進行解決。

其實要解決這個問題,我們只需要進行如下兩步操作,就可以解決這個問題。

第一步、修改open***配置文件,向客戶端推送192.168.5.1/24網段的路由。(此步可以省略)

第二步、配置IPtables規則。

注意:以上兩步操作,第一步操作可以沒有,但是配置IPtables規則這一步操作一定不能少。否則客戶端還是無法與內網機器正常通信。

下面我們詳細介紹這兩步的操作。

二、open***服務器配置

在《爛泥:open***配置文件詳解》這篇文章中,我們詳細介紹了有關open***的server.conf配置文件,我們現在需要做的就是把192.168.5.1/24網段路由推送到客戶端。具體配置如下:

push "route 192.168.5.0 255.255.255.0"

clip_image002

修改完畢後,我們要重啓open***,如下:

sudo /etc/init.d/open*** restart

clip_image003

有關open***需要修改的配置就這麼多,下面開始配置IPtables規則。

三、配置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

clip_image004

以上修改完畢後,我們啓動open***客戶端,看看是否可以與192.168.5.1/24網段機器進行通信。

四、測試網段之間的通信

在open***客戶端ping192.168.5.1/24網段機器,如下:

ping 192.168.5.140

clip_image005

telnet 192.168.5.4 22

clip_image006

通過以上兩張圖,我們可以看出現在open***客戶端已經和內網機器正常通信。

以上就是有關open*** tun模式下客戶端與內網機器通信的配置過程。

在實際使用open***過程中,我們可能還會遇到以下還有幾個問題,再此我們給出相應的open***配置。

五、***的配置

有時候爲了能去國外看看,我們會購買國外的服務器,搭建open***然後利用這臺服務器進行***。

在open***配置中,我們只需要在open***服務器的server.conf配置中,開啓push "redirect-gateway def1 bypass-dhcp"項即可。如下:

push "redirect-gateway def1 bypass-dhcp"

clip_image007

此時open***客戶端撥號後,就會發現已經國外的IP。如下:

clip_image008

通過上圖,我們可以很明顯的看到現在IP地址已經國外的了。具體如何使用,你懂的,呵呵。

六、open***客戶端linux開機啓動問題

因爲項目需求,需要一臺服務器開機就要連接,遠程的open***服務器。如果是windows系統的很簡單,配置下就可以了。

而在linux系統下只需要把open***客戶端連接open***服務器的命令寫入到/etc/rc.local文件中即可。如下:

cat /etc/rc.local

clip_image009

但是有一點需要特別注意,就是open***客戶端的配置文件中有關從CA證書、客戶端的證書以及客戶端密鑰文件,一定要寫成絕對路徑,而不是相對路徑,如下:

clip_image010

同時如果是centos系統的話,一定不要配置成在/root/目錄下開機啓動open***客戶端連接open***服務器。

因爲經過多次測試,這樣是不能開機open***客戶端連接open***服務器的。

七、給客戶端指定IP地址

有時候爲了實際項目的需求,需要給客戶端指定IP地址。那麼就可以通過修改open***服務器的配置來達到這個要求。

只需要把server.conf文件中的開啓client-config-dir ccd,然後在/etc/open***目錄下創建ccd目錄。如下:

clip_image011

clip_image012

然後再在ccd目錄下根據不同的客戶端創建對應的文件,並在文件中寫入如下內容:

ifconfig-push 10.8.0.200 255.255.255.0

clip_image013

以上的意思就是爲client這個客戶端指定IP地址爲10.8.0.200。

現在我們重新啓動open***服務器,然後客戶端進行連接。如下:

clip_image014

通過上圖,我們可以很明顯的看出。客戶端獲得的IP地址確實爲10.8.0.200。

PS:以上執行是在linux系統上,經過測試發現在windows下如果給客戶端指定IP地址的話會報錯。猜想這可能是一個BUG。


“51cto十週年博客活動”正在進行,你也來參加吧~ 活動地址http://51ctoblog.blog.51cto.com/26414/1679643

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章