【個人技術我作主】爛泥:open*** tun模式下客戶端與內網機器通訊

本文首發於爛泥行天下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

clip_p_w_picpath001

若是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"

clip_p_w_picpath002

修改完畢後,咱們要重啓open***,以下:

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

clip_p_w_picpath003

有關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

clip_p_w_picpath004

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

4、測試網段之間的通訊

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

ping 192.168.5.140

clip_p_w_picpath005

telnet 192.168.5.4 22

clip_p_w_picpath006

經過以上兩張圖,咱們能夠看出如今open***客戶端已經和內網機器正常通訊。

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

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

5、×××的配置

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

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

push "redirect-gateway def1 bypass-dhcp"

clip_p_w_picpath007

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

clip_p_w_picpath008

經過上圖,咱們能夠很明顯的看到如今IP地址已經國外的了。具體如何使用,你懂的,呵呵。

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

由於項目需求,須要一臺服務器開機就要鏈接,遠程的open***服務器。若是是windows系統的很簡單,配置下就能夠了。

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

cat /etc/rc.local

clip_p_w_picpath009

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

clip_p_w_picpath010

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

由於通過屢次測試,這樣是不能開機open***客戶端鏈接open***服務器的。

7、給客戶端指定IP地址

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

只須要把server.conf文件中的開啓client-config-dir ccd,而後在/etc/open***目錄下建立ccd目錄。以下:

clip_p_w_picpath011

clip_p_w_picpath012

而後再在ccd目錄下根據不一樣的客戶端建立對應的文件,並在文件中寫入以下內容:

ifconfig-push 10.8.0.200 255.255.255.0

clip_p_w_picpath013

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

如今咱們從新啓動open***服務器,而後客戶端進行鏈接。以下:

clip_p_w_picpath014

經過上圖,咱們能夠很明顯的看出。客戶端得到的IP地址確實爲10.8.0.200。

PS:以上執行是在linux系統上,通過測試發如今windows下若是給客戶端指定IP地址的話會報錯。猜測這多是一個BUG。


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

相關文章
相關標籤/搜索