爛泥:openvpn tun模式下用戶端與內網機器通訊,openvpntun

來源:互聯網
上載者:User

爛泥:openvpn tun模式下用戶端與內網機器通訊,openvpntun

本文由秀依林楓提供友情贊助,首發於爛泥行天下

前兩篇文章我們介紹了有關openvpn的搭建與設定檔的講解,這篇文章我們再聊介紹下,在tun模式下openvpn用戶端如何與內網機器通訊的問題。

一、實際問題

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

1、openvpn伺服器單網卡,通過硬體防火牆把openvpn伺服器的1194連接埠映射到公網。

2、openvpn伺服器所在的網段為192.168.5.1/24網段

3、openvpn用戶端獲得IP地址為10.8.0.1/24網段

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

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

如果openvpn伺服器使用的是tap橋接模式的話,這個問題很容易解決,只需要在openvpn伺服器端通過修改openvpn設定檔server.conf,向用戶端推送公司內網的IP位址區段即可。

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

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

第一步、修改openvpn設定檔,向用戶端推送192.168.5.1/24網段的路由。(此步可以省略)

第二步、配置IPtables規則。

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

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

二、openvpn伺服器配置

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

push "route 192.168.5.0 255.255.255.0"

修改完畢後,我們要重啟openvpn,如下:

sudo /etc/init.d/openvpn restart

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

三、配置IPtables規則

現在我們開始配置IPtables規則,我們需要做的就是把所有來自10.8.0.1/24網段的請求,全部通過openvpn伺服器的eth0網卡轉寄出去,也就是我們平時所說的IPtables的NAT規則。

注意:IPtables規則是在openvpn伺服器進行配置的,而不是openvpn用戶端。

IPtables NAT規則如下:

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

sudo iptables -nL -t nat

以上修改完畢後,我們啟動openvpn用戶端,看看是否可以與192.168.5.1/24網段機器進行通訊。

四、測試網段之間的通訊

在openvpn用戶端ping192.168.5.1/24網段機器,如下:

ping 192.168.5.140

telnet 192.168.5.4 22

通過以上兩張圖,我們可以看出現在openvpn用戶端已經和內網機器正常通訊。

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

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

五、FQ的配置

有時候為了能去國外看看,我們會購買國外的伺服器,搭建openvpn然後利用這台伺服器進行FQ。

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

push "redirect-gateway def1 bypass-dhcp"

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

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

六、openvpn用戶端linux開機啟動問題

因為項目需求,需要一台伺服器開機就要串連,遠端openvpn伺服器。如果是windows系統的很簡單,配置下就可以了。

而在linux系統下只需要把openvpn用戶端串連openvpn伺服器的命令寫入到/etc/rc.local檔案中即可。如下:

cat /etc/rc.local

但是有一點需要特別注意,就是openvpn用戶端的設定檔中有關從CA認證、用戶端的認證以及用戶端密鑰檔案,一定要寫成絕對路徑,而不是相對路徑,如下:

同時如果是centos系統的話,一定不要配置成在/root/目錄下開機啟動openvpn用戶端串連openvpn伺服器。

因為經過多次測試,這樣是不能開機openvpn用戶端串連openvpn伺服器的。

七、給用戶端指定IP地址

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

只需要把server.conf檔案中的開啟client-config-dir ccd,然後在/etc/openvpn目錄下建立ccd目錄。如下:

然後再在ccd目錄下根據不同的用戶端建立對應的檔案,並在檔案中寫入如下內容:

ifconfig-push 10.8.0.200 255.255.255.0

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

現在我們重新啟動openvpn伺服器,然後用戶端進行串連。如下:

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.