最近裝了這個東西, 以下這個 Blog 介紹的很詳細, 我 ref 他了 and 複製了重要部份 for backup.
Ref. http://carl830.pixnet.net/blog/post/68143721-ubuntu-%E6%9E%B6%E8%A8%ADvpn-server-with-pptp
首先要先安裝pptpd
sudo apt-get install pptpd
接著修改/etc/pptpd.conf
這邊localip是Server 連線之後要用的IP,基本上跟Server本身的Public IP沒有關係,可以給個private ip就ok了
remoteip 是給VPN client的 private ip,大致給個範圍,可以不用像我一樣給了128個Private IP
應該是要看同時會有多少人使用來給範圍
localip 192.168.0.1
remoteip 192.168.0.128-255
再下來是修改/etc/ppp/pptpd-options
這邊要注意一下裡面的name設定
通常會設成是pptpd
之後要跟/etc/ppp/chap-secrets裡的設定作對應
另外還有要設定ms-dns
就看那台Server原本指定的DNS IP,拿過來用就ok了
要看DNS IP設定可以到/etc/resolve.conf裡面去看
設定完後接下來就是帳號密碼的部份啦
修改 sudo gedit /etc/ppp/chap-secrets
以下是大概的格式,這邊要注意pptpd是對應之前紅色的文字部份
# Secrets for authentication using CHAP
# client server secret IP addresses
ccma pptpd password *
重啟pptpd
sudo /etc/init.d/pptpd restart
接下來試試看VPN連線看看
我的情形是還不行啦XD
查了一下資料,應該是有指定到private ip,但是封包在Server這邊傳不出去,因為沒設定
所以接下來還要再設定一下NAT的部份啦
設定一下iptables
sudo iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
但是這樣的設定在每次重開機之後就會消失
所以設定完後可以用iptables-save將設定檔存起來,如:
sudo iptables-save > /etc/iptables-rules
如果出現權限問題就sudo su轉成root再做
但是存起來之後,他並不會幫你在每次重開機都讀那個檔
所以還要再設定,修改/etc/network/interfaces,最後面加上:
pre-up iptables-restore < /etc/iptables-rules
最後是修改/etc/sysctl.conf
找到以下這行,將前面的#給刪掉,#是代表註解
這樣才有forward 封包的功能
#net.ipv4.ip_forward=1
改完之後,更新sysctl的設定
sudo sysctl -p
OK! 到這裡之後應該是就可以連VPN了
如果還不行的話,可以重啟動看看