樹莓派使用pptpd搭建PPTP服務器


1 需求及環境

學校的教務管理系統需要宿舍內網才能登錄,使用外網無法訪問。
打算把樹莓派部署在宿舍並搭建一個VPN服務器供我連接以便訪問教務管理系統。

樹莓派通過有線連接到宿舍路由器,路由器撥號訪問網絡。


2 必要軟件安裝

我們需要用到ppp pptpd這2個軟件

sudo apt-get install ppp
sudo apt-get install pptpd

3 配置pptpd

3.1 設置ppp連接的ip

編輯文件/etc/pptpd.conf,在文件末尾添加:

localip 192.168.1.100
remoteip 192.168.1.101-120

localip表示服務器在客戶端處的ip
remoteip表示給客戶端分配的ip段
此處建議ip段與樹莓派所在的內網ip段相同,但是ip地址不要有任何沖突。

3.2 設置DNS及WINS

編輯文件/etc/ppp/pptpd-options,在文件末尾添加:

ms-dns 192.168.1.1
ms-wins 192.168.1.100

ms-dns表示vpn連接內的dns地址,此處應該填寫路由器的內網地址
ms-wins表示要在網上鄰居中顯示的設備的ip,此處我填寫了樹莓派的ip


4 配置ppp

4.1 設置VPN的連接憑證

編輯文件/etc/ppp/chap-secrets,添加用戶,一行一個:

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
用戶名 * 密碼 *

至此VPN已經可以連接了,但是只能訪問內網。如果需要訪問internet,則需要繼續配置轉發規則。


5 啟用ip轉發

編輯文件/etc/sysctl.conf,去掉下面語句前的#

net.ipv4.ip_forward=1

執行

sudo sysctl -p

使修改生效。

現在VPN已經可以正常連接,但是部分網站無法正常訪問。


6 修改默認MTU

通過ifconfig可以看到,因為與peer協商出來的MTU值為1396,我們需要將MTU的值設置為1496才能順利訪問所有網站。
網上搜索到的修改MTU的方法有這兩種:
1.通過iptables設置防火牆規則。
2.通過編輯ip-up相關文件實現有新連接后自動執行ifconfig指定MTU。
雖然這兩種方法可行,但卻是間接實現,考慮應該可以直接通過ppp配置文件來指定MTU,果然找到了辦法。
編輯文件/etc/ppp/options,在文件中的相應位置或者直接在文件末尾添加:

-mru
mru 1496

第一句的意思是關閉與另一方的MRU協商,不寫這句話則第二句話無效(最終MTU值會被協商結果覆蓋)
第二句的意思是設置默認MRU值為1496,不寫這句話則默認MRU值1500
再次執行ifconfig命令,可以看到MTU已變為1496,所有網站也已能正常訪問。


7 重啟pptpd

sudo service pptpd restart

大功告成,我們的VPN即可正常使用。


8 iptables設置(其他環境)

在VPS上用上述方法搭建后能連接成功卻不能正常訪問網絡,需要配置iptables,運行下面的命令:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

由於VPS網卡的ip地址是內網地址,該命令的作用是通過MASQUERADE地址偽裝進行POSTROUTING源地址轉換,將源地址從內網地址轉換成公網地址后才能正常訪問網絡。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM