ubuntu單網卡建立vpn伺服器

來源:互聯網
上載者:User


ubuntu單網卡建立vpn伺服器 在 Ubuntu 上搭建 VPN 伺服器的方法非常多,比較著名的有 PPTP, L2TP/IPSec 和 OpenVPN。這三種方式中後兩者的安全性比較好,但配置較麻煩。其中 OpenVPN 在 Windows/Mac 平台上還需要額外的用戶端。而 L2TP/IPSec 方式雖然比較好,但我配置後,雖然 Windows 和 Linux 使用者沒有問題,但 Mac/iPhone 卻始終無法連上, PPTP 是這三者中配置最容易的方式,而且由於 Windows/Mac 系統中都內建相應的用戶端,使用起來非常方便。伺服器環境是單網卡 eth0。在 Ubuntu 中建立 pptp server 需要的軟體包為 pptpd,用 apt-get 即可安裝:  sudo apt-get pptpd
 系統會自動解決依賴關係,安裝好後,需要進行一番設定。首先編輯 /etc/pptpd.conf  sudo nano /etc/pptpd.conf 去掉檔案最末端的 localip 和 remoteip 兩個參數的注釋,並進行相應修改。這裡,localip 是 VPN 連通後伺服器的 ip 地址,而 remoteip 則是用戶端的可分配 ip 地址。 localip 10.100.0.1   www.2cto.com  remoteip 10.100.0.2-10 編輯好這個檔案後,我們需要編輯 /etc/ppp/pptpd-options 檔案,還是用 nano 編輯,命令這裡就不寫了。這裡絕大多數參數只需維持原來的預設值即可,我們只需要改變其中的 ms-dns 選項,為 VPN 用戶端端指派 DNS 伺服器地址: 
  ms-dns 202.113.16.10 ms-dns 208.67.222.222 修改 /etc/ppp/chap-secrets 檔案,這裡面存放著 VPN 的使用者名稱和密碼,根據你的實際情況填寫即可。如檔案中注釋所示,第一列是使用者名稱,第二列是伺服器名(預設寫 pptpd 即可,如果在 pptpd-options 檔案中更改過的話,注意這裡保持一致),第三列是密碼,第四列是 IP 限制(不做限制寫 * 即可)。 全部搞定後,我們需要重啟 pptpd 服務使新配置生效:  sudo /etc/init.d/pptpd restart 找一台 Windows 電腦,建立個 VPN 連結,地址填伺服器的 IP(或網域名稱),使用者名稱密碼填剛才設定好的,域那項空著(如果你在 pptpd-options 中設定了,這裡就保持一致),點串連就可以了。正常情況下您應該能夠建立與伺服器的 VPN 連結了。 
 建立串連之後,您會發現除了可以訪問伺服器的資源,其餘內外和互連網的內容均無法訪問。如果需要訪問這些內容的話,我們還需要進一步設定: 首先,開啟 ipv4 forward。方法是,修改 /etc/sysctl.conf,找到類似下面的行並取消它們的注釋:  net.ipv4.ip_forward=1 然後使新配置生效:  sudo sysctl -p 
 有些時候,經過這樣設定,用戶端機器就可以上網了(我在虛擬機器上這樣操作後就可以了)。但我在實驗室的伺服器上這樣操作後仍然無法訪問網路,這樣我們就需要建立一個 NAT。這裡我們使用強大的 iptables 來建立 NAT。首先,先安裝 iptables:  sudo apt-get intall iptables   www.2cto.com  裝好後,我們向 nat 表中加入一條規則:  sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24 -o eth0 -j MASQUERADE 這樣操作後,用戶端機器應該就可以上網了。 但是,只是這樣,iptables 的規則會在下次重啟時被清除,所以我們還需要把它儲存下來,方法是使用 iptables-save 命令: 
  sudo iptables-save > /etc/iptables-rules 然後修改 /etc/network/interfaces 檔案,找到 eth0 那一節,在對 eth0 的設定最末尾加上下面這句:  pre-up iptables-restore < /etc/iptables-rules 這樣當網卡 eth0 被載入的時候就會自動載入我們預先用 iptables-save 儲存下的配置。 到此,一個 VPN Server/Gateway 基本就算架設完畢。當然,也許你按照我的方法做了,還是無法成功,那麼下面總結一些我碰到的問題和解決方案: 
 無法建立 VPN 串連 安裝好 pptpd 並設定後,用戶端還是無法建立到伺服器的串連。造成的原因可能有以下幾種:   1. 伺服器端的防火牆設定:PPTP 服務需要使用 1723(tcp) 連接埠和 gre 協議,因此請確保您的防火牆設定允許這兩者通行。   2. 如果伺服器在路由器後面,請確保路由器上做好相應的設定和連接埠轉寄。   3. 如果伺服器在路由器後面,那麼請確保你的伺服器支援 VPN Passthrough。   4. 如果用戶端在路由器後面,那麼用戶端所使用的路由器也必須支援 VPN Passthrough。其實市面上稍微好點的路由器都是支援 VPN Passthrough 的,當然也不排除那些最最最便宜的便宜貨確實不支援。當然,如果你的路由器可以刷 DD-Wrt 的話就刷上吧,DD-Wrt 是支援的。 
 能建立連結,但“幾乎”無法訪問互連網   www.2cto.com   這裡我使用“幾乎”這個詞,是因為並不是完全不能訪問互連網。癥狀為,開啟 Google 搜尋沒問題,但其它網站均無法開啟;SSH 可用,但 scp 不行;ftp 能握手,但傳不了檔案。我就遇到了這種情況,仔細 Google 後發現原來是 MTU 的問題,用 ping 探測了一下果然是包過大了。知道問題就好辦了,我們可以通過 iptables 來修正這一問題。具體原理就不講了,需要的自己 Google。這裡只說解決方案,在 filter 表中添加下面的規則:  sudo iptables -A FORWARD -s 10.100.0.0/24 -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200  上面規則中的 1200 可以根據你的實際情況修改,為了保證最好的網路效能,這個值應該不斷修改,直至能保證網路正常使用方式下的最大值。 好了,至此,一台單網卡 pptp-server 就算完成了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.