❶ 如何在Ubuntu VPS下配置VPN
安裝pptpd
$ sudo apt-get install pptpd
編輯配置文件:
$ sudo vi /etc/pptpd.conf
找到最下面,修改ip:
localip 你的主機ip
remoteip 10.100.0.2-10
第二行為分配的ip段
設置dns
$ sudo vi /etc/ppp/pptpd-options
修改以下部分為google的dns:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
設置賬號:
$ sudo vi /etc/ppp/chap-secrets
添加一行,依次為:用戶名,服務,密碼,限制ip:
"user" pptpd "user"*
重啟服務:
$ sudo /etc/init.d/pptpd restart
設置轉發:
$ sudo vi /etc/sysctl.conf
去掉文件中這一行的注釋:
net.ipv4.ip_forward=1
使它立刻生效:
sudo sysctl -p
安裝iptables:
sudo apt-get install iptables
建立一個 NAT:
sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24-o eth0 -j MASQUERADE
將規則保存,使重啟後規則不丟失:
sudo iptables-save >/etc/iptables-rules
若此處提示:-bash: /etc/iptables-rules: Permission denied 則可使用root用戶,命令:su - 進入root用戶保存
編輯網卡文件,載入網卡時自動載入規則
sudo vi /etc/network/interfaces
末尾加入:
pre-up iptables-restore </etc/iptables-rules
設置MTU,防止包過大:
sudo iptables -A FORWARD -s 10.100.0.0/24-p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
若設置了,記得保存:
sudo iptables-save >/etc/iptables-rules
macos 能連上,但沒有任何收發包的問題,即能連接上VPN,不能上網:vpn高級里勾選發送全部流量。OK噠
(望樓主採納哦)
❷ 如何在Ubuntu下配置L2TP VPN
安裝軟體包
sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
# 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
# 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
# Apple 的 iOS 不會發送 delete 提醒,
# 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端
dpddelay=30
dpdtimeout=120
dpdaction=clear
# 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致
ikelifetime=8h
keylife=1h
type=transport
# 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址)
left=x.x.x.x
# 用於升級過的 Windows 2000/XP 客戶端
leftprotoport=17/1701
# 要支持老的客戶端,需要設置 leftprotoport=17/%any
right=%any
rightprotoport=17/%any
# 強制所有連接都NAT,因為 iOS
forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"
這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start
使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify
應該沒有任何錯誤才行:
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
linux Openswan U2.6.28/K2.6.32-32-generic-pae (netkey)
Checking for IPsec support in kernel [OK]
NETKEY detected, testing for disabled ICMP send_redirects [OK]
NETKEY detected, testing for disabled ICMP accept_redirects [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for 'ip' command [OK]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]
在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case "$1" in
start)
echo "Starting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec start
/etc/init.d/xl2tpd start
;;
stop)
echo "Stopping my Ipsec VPN"
iptables --table nat --flush
echo 0 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/ipsec stop
/etc/init.d/xl2tpd stop
;;
restart)
echo "Restarting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
;;
*)
echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}"
exit 1
;;
esac
這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn
禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove
然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults
L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]
ipsec saref = no
[lns default]
ip range = 10.152.2.2-10.152.2.254
local ip = 10.152.2.1
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
配置說明如下:
ip range = 可以連接VPN服務的客戶端IP地址范圍
local ip = VPN 伺服器的IP,必須在客戶端IP范圍之外
refuse pap = 拒絕 pap 認證
ppp debug = 測試時打開
選擇一個復雜的挑戰-響應式驗證字元串。雖然沒有最短長度限制,不過它應該至少有16個字元,也應該足夠復雜才能保證安全。
打開文件 /etc/xl2tpd/l2tp-secrets ,填入你的密碼:
* * exampleforchallengestring
打開文件 /etc/ppp/options.xl2tpd,做如下配置:
refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
#debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
ms-dns 選項設置要給客戶端分配的 DNS 伺服器,當客戶端連接時,就會被分配這些 DNS。如果要加入多個 DNS,就每行一個,分別寫幾行。
如果你要給客戶端推送wins設置,可以分別設置如下選項。
mtu 和 mru 按照openswan.org的說法,減小 mru/mtu 的大小非常重要。因為 l2tp/ipsec 會封裝幾次,可能導致性能下降,減小這個配置的大小可以一次性傳輸全部的包。
proxyarp 可以將連接的客戶端的IP地址和乙太網地址加入的系統的ARP表中。這會影響到本地區域網內其它客戶端。
name l2tpd 用在 PPP驗證文件裡面。
添加用戶
打開文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *
user2 * chooseagoodpassword *
每行包括如下欄位:
客戶端 = 用戶名稱
伺服器 = 在上面的 /etc/ppp/options.xl2tpd 定義的名字
密碼 = 用戶密碼,你應該設置一個足夠復雜的密碼
IP 地址 = * 表示用戶可以從任何地址連接,否則設置用戶只能從特定的地址連接
注意:你可以添加多個用戶。
IP轉發
打開文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1
載入新的配置:
sysctl -p
啟動VPN
sudo /etc/init.d/ipsec.vpn restart
sudo /etc/init.d/xl2tpd restart
排除故障
如果遇到了問題,以下命令可以幫助你找到問題:
sudo tcpmp -i ppp0
sudo tail -f /var/log/auth.log
sudo tail -f /var/log/syslog
你可以可以在伺服器上使用如下命令來監控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd and not port ssh
這里aaa.bbb.ccc.ddd 是你的客戶端的公網地址。
❸ 如何在Ubuntu下配置L2TP VPN
安裝軟體包
sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
# 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
# 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
oe=off
protostack=netkey
conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
# Apple 的 iOS 不會發送 delete 提醒,
# 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端
dpddelay=30
dpdtimeout=120
dpdaction=clear
# 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致
ikelifetime=8h
keylife=1h
type=transport
# 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址)
left=x.x.x.x
# 用於升級過的 Windows 2000/XP 客戶端
leftprotoport=17/1701
# 要支持老的客戶端,需要設置 leftprotoport=17/%any
right=%any
rightprotoport=17/%any
# 強制所有連接都NAT,因為 iOS
forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"
這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start
使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify
應該沒有任何錯誤才行:
Checking your system to see if IPsec got installed and started correctly:
Version check and ipsec on-path [OK]
Linux Openswan U2.6.28/K2.6.32-32-generic-pae (netkey)
Checking for IPsec support in kernel [OK]
NETKEY detected, testing for disabled ICMP send_redirects [OK]
NETKEY detected, testing for disabled ICMP accept_redirects [OK]
Checking that pluto is running [OK]
Pluto listening for IKE on udp 500 [OK]
Pluto listening for NAT-T on udp 4500 [OK]
Checking for 'ip' command [OK]
Checking for 'iptables' command [OK]
Opportunistic Encryption Support [DISABLED]
在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case "$1" in
start)
echo "Starting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec start
/etc/init.d/xl2tpd start
;;
stop)
echo "Stopping my Ipsec VPN"
iptables --table nat --flush
echo 0 > /proc/sys/net/ipv4/ip_forward
/etc/init.d/ipsec stop
/etc/init.d/xl2tpd stop
;;
restart)
echo "Restarting my Ipsec VPN"
iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
/etc/init.d/xl2tpd restart
;;
*)
echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}"
exit 1
;;
esac
這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn
禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove
然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults
L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]
ipsec saref = no
[lns default]
ip range = 10.152.2.2-10.152.2.254
local ip = 10.152.2.1
require chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
配置說明如下:
ip range = 可以連接VPN服務的客戶端IP地址范圍
local ip = VPN 伺服器的IP,必須在客戶端IP范圍之外
refuse pap = 拒絕 pap 認證
ppp debug = 測試時打開
選擇一個復雜的挑戰-響應式驗證字元串。雖然沒有最短長度限制,不過它應該至少有16個字元,也應該足夠復雜才能保證安全。
打開文件 /etc/xl2tpd/l2tp-secrets ,填入你的密碼:
* * exampleforchallengestring
打開文件 /etc/ppp/options.xl2tpd,做如下配置:
refuse-mschap-v2
refuse-mschap
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
idle 1800
mtu 1200
mru 1200
lock
hide-password
local
#debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
ms-dns 選項設置要給客戶端分配的 DNS 伺服器,當客戶端連接時,就會被分配這些 DNS。如果要加入多個 DNS,就每行一個,分別寫幾行。
如果你要給客戶端推送wins設置,可以分別設置如下選項。
mtu 和 mru 按照openswan.org的說法,減小 mru/mtu 的大小非常重要。因為 l2tp/ipsec 會封裝幾次,可能導致性能下降,減小這個配置的大小可以一次性傳輸全部的包。
proxyarp 可以將連接的客戶端的IP地址和乙太網地址加入的系統的ARP表中。這會影響到本地區域網內其它客戶端。
name l2tpd 用在 PPP驗證文件裡面。
添加用戶
打開文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *
user2 * chooseagoodpassword *
每行包括如下欄位:
客戶端 = 用戶名稱
伺服器 = 在上面的 /etc/ppp/options.xl2tpd 定義的名字
密碼 = 用戶密碼,你應該設置一個足夠復雜的密碼
IP 地址 = * 表示用戶可以從任何地址連接,否則設置用戶只能從特定的地址連接
注意:你可以添加多個用戶。
IP轉發
打開文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1
載入新的配置:
sysctl -p
啟動VPN
sudo /etc/init.d/ipsec.vpn restart
sudo /etc/init.d/xl2tpd restart
排除故障
如果遇到了問題,以下命令可以幫助你找到問題:
sudo tcpmp -i ppp0
sudo tail -f /var/log/auth.log
sudo tail -f /var/log/syslog
你可以可以在伺服器上使用如下命令來監控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd and not port ssh
這里aaa.bbb.ccc.ddd 是你的客戶端的公網地址。
❹ 如何在Ubuntu下配置L2TP VPN
安裝軟體包
1.sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
1.config setup
2.nat_traversal=yes
3.virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
4.# 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
# 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
5.oe=off
6.protostack=netkey
7.conn L2TP-PSK-NAT
8.rightsubnet=vhost:%priv
9.also=L2TP-PSK-noNAT
10.conn L2TP-PSK-noNAT
11.authby=secret
12.pfs=no
13.auto=add
14.keyingtries=3
15.rekey=no
16.# Apple 的 iOS 不會發送 delete 提醒,
# 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端
17.dpddelay=30
18.dpdtimeout=120
19.dpdaction=clear
20.# 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致
21.ikelifetime=8h
22.keylife=1h
23.type=transport
24.# 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址)
25.left=x.x.x.x
26.# 用於升級過的 Windows 2000/XP 客戶端
27.leftprotoport=17/1701
28.# 要支持老的客戶端,需要設置 leftprotoport=17/%any
right=%any
29.rightprotoport=17/%any
30.# 強制所有連接都NAT,因為 iOS
31.forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
1.x.x.x.x %any: PSK "somegoodpassword"
這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
1./etc/init.d/ipsec start
使用如下命令確認 ipsec 是否工作正常:
1.sudo ipsec verify
應該沒有任何錯誤才行:
1.Checking your system to see ifIPsec got installed and started correctly:
2.Version check and ipsec on-path [OK]
3.LinuxOpenswan U2.6.28/K2.6.32-32-generic-pae (netkey)
4.CheckingforIPsec support in kernel [OK]
5.NETKEY detected, testing for disabled ICMP send_redirects [OK]
6.NETKEY detected, testing for disabled ICMP accept_redirects [OK]
7.Checking that pluto is running [OK]
8.Pluto listening for IKE on udp 500[OK]
9.Pluto listening for NAT-T on udp 4500[OK]
10.Checkingfor'ip' command [OK]
11.Checkingfor'iptables' command [OK]
12.[DISABLED]
在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
1.case"$1"in
2.start)
3.echo "Starting my Ipsec VPN"
4.iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24-j MASQUERADE
5.echo 1>/proc/sys/net/ipv4/ip_forward
6.for each in/proc/sys/net/ipv4/conf/*
7.do
8.echo 0 > $each/accept_redirects
9.echo 0 > $each/send_redirects
10.done
11./etc/init.d/ipsec start
12./etc/init.d/xl2tpd start
13.;;
14.stop)
15.echo "Stopping my Ipsec VPN"
16.iptables --table nat --flush
17.echo 0 > /proc/sys/net/ipv4/ip_forward
18./etc/init.d/ipsec stop
19./etc/init.d/xl2tpd stop
20.;;
21.restart)
22.echo "Restarting my Ipsec VPN"
23.iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE
24.echo 1 > /proc/sys/net/ipv4/ip_forward
25.for each in /proc/sys/net/ipv4/conf/*
26.do
27.echo 0 > $each/accept_redirects
28.echo 0 > $each/send_redirects
29.done
30./etc/init.d/ipsec restart
31./etc/init.d/xl2tpd restart
32.;;
33.*)
34.echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}"
35.exit 1
36.;;
37.esac
這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
1.sudo chmod 755 ipsec.vpn
禁止默認的 ipsec 服務腳本運行:
1.sudo update-rc.d -f ipsec remove
然後,啟用我們剛才定製的這個:
1.sudo update-rc.d ipsec.vpn defaults
❺ 如何在Ubuntu VPS下配置VPN
安裝pptpd
$ sudo apt-get install pptpd
編輯配置文件:
$ sudo vi /etc/pptpd.conf
找到最下面,修改ip:
localip 你的主機ip
remoteip 10.100.0.2-10
第二行為分配的ip段
設置dns
$ sudo vi /etc/ppp/pptpd-options
修改以下部分為google的dns:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
設置賬號:
$ sudo vi /etc/ppp/chap-secrets
添加一行,依次為:用戶名,服務,密碼,限制ip:
"user" pptpd "user"*
重啟服務:
$ sudo /etc/init.d/pptpd restart
設置轉發:
$ sudo vi /etc/sysctl.conf
去掉文件中這一行的注釋:
net.ipv4.ip_forward=1
使它立刻生效:
sudo sysctl -p
安裝iptables:
sudo apt-get install iptables
建立一個 NAT:
sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24-o eth0 -j MASQUERADE
將規則保存,使重啟後規則不丟失:
sudo iptables-save >/etc/iptables-rules
若此處提示:-bash: /etc/iptables-rules: Permission denied 則可使用root用戶,命令:su - 進入root用戶保存
編輯網卡文件,載入網卡時自動載入規則
sudo vi /etc/network/interfaces
末尾加入:
pre-up iptables-restore </etc/iptables-rules
設置MTU,防止包過大:
sudo iptables -A FORWARD -s 10.100.0.0/24-p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
若設置了,記得保存:
sudo iptables-save >/etc/iptables-rules
macos 能連上,但沒有任何收發包的問題,即能連接上VPN,不能上網:vpn高級里勾選發送全部流量
至此,搞定。
❻ 如何在Ubuntu下配置PPTP VPN
buntu下要配置vpn,可以按照下列步驟來進行:
1、安裝 pptp-linux:
apt-get install pptp-linux
2、建立配置文件(在/etc/ppp/peers/配置文件名):
pty "pptp --nolaunchpppd"
name <用戶名>
remotename pptp
#require-mppe-128
file /etc/ppp/options.pptp
ipparam vpn
3、修改/etc/ppp/chap-secrets 文件,增加一行:
"<用戶名>" * 「<密碼>」
就是配置文件中使用的用戶名,加上密碼。這里主要是在建立連接時進行chap認證用的。
4、到這里,應該已經可以使用 sudo pon 配置文件名 建立pptp連接了。
建立連接後,要route add,我以前用173vpn試過,按照上面的操作來的話,基本沒有什麼問題了。
❼ 如何在Ubuntu下配置L2TP VPN
安裝軟體包
sudo apt-get install xl2tpd openswan ppp
IPSec / Openswan
打開 /etc/ipsec.conf 文件,做如下配置:
config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24
這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說,
這些地址范圍應該是你的NAT路由器後面的客戶端的地址。
❽ 如何在Ubuntu VPS下配置VPN
如何在Ubuntu VPS下配置VPN
安裝pptpd
$ sudo apt-get install pptpd
編輯配置文件:
$ sudo vi /etc/pptpd.conf
找到最下面,修改ip:
localip 你的主機ip
remoteip 10.100.0.2-10
第二行為分配的ip段
設置dns
$ sudo vi /etc/ppp/pptpd-options
修改以下部分為google的dns:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
設置賬號:
$ sudo vi /etc/ppp/chap-secrets
添加一行,依次為:用戶名,服務,密碼,限制ip:
"user" pptpd "user"*
重啟服務:
$ sudo /etc/init.d/pptpd restart
設置轉發:
$ sudo vi /etc/sysctl.conf
去掉文件中這一行的注釋:
net.ipv4.ip_forward=1
使它立刻生效:
sudo sysctl -p
安裝iptables:
sudo apt-get install iptables
建立一個 NAT:
sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24-o eth0 -j MASQUERADE
將規則保存,使重啟後規則不丟失:
sudo iptables-save >/etc/iptables-rules
若此處提示:-bash: /etc/iptables-rules: Permission denied 則可使用root用戶,命令:su - 進入root用戶保存
編輯網卡文件,載入網卡時自動載入規則
sudo vi /etc/network/interfaces
末尾加入:
pre-up iptables-restore </etc/iptables-rules
設置MTU,防止包過大:
sudo iptables -A FORWARD -s 10.100.0.0/24-p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
若設置了,記得保存:
sudo iptables-save >/etc/iptables-rules
macos 能連上,但沒有任何收發包的問題,即能連接上VPN,不能上網:vpn高級里勾選發送全部流量
至此,搞定。
❾ 如何在Ubuntu下配置PPTP VPN
安裝pptpd
$ sudo apt-get install pptpd
編輯配置文件:
$ sudo vi /etc/pptpd.conf
找到最下面,修改ip:
localip 你的主機ipremoteip 10.100.0.2-10
第二行為分配的ip段
設置dns
$ sudo vi /etc/ppp/pptpd-options
修改以下部分為google的dns:
ms-dns 8.8.8.8ms-dns 8.8.4.4
設置賬號:
$ sudo vi /etc/ppp/chap-secrets
添加一行,依次為:用戶名,服務,密碼,限制ip:
"user" pptpd "user" *
重啟服務:
$ sudo /etc/init.d/pptpd restart
設置IP轉發
打開這個文件
$ sudo vi /etc/sysctl.conf
去掉文件中這一行的注釋:
net.ipv4.ip_forward=1
使它立刻生效:
sudo sysctl -p
安裝iptables,如果你還沒有安裝的話:
sudo apt-get install iptables
建立一個 NAT:
sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24-o eth0 -j MASQUERADE
將規則保存,使重啟後規則不丟失:
sudo iptables-save >/etc/iptables-rules
若此處提示:-bash: /etc/iptables-rules: Permission denied 則可使用root用戶,命令:su - 進入root用戶保存
編輯網卡文件,載入網卡時自動載入規則
sudo vi /etc/network/interfaces
末尾加入:
pre-up iptables-restore </etc/iptables-rules
設置MTU,防止包過大:
sudo iptables -A FORWARD -s 10.100.0.0/24-p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200
若設置了上條規則,記得保存:
sudo iptables-save >/etc/iptables-rules
macos 能連上,但沒有任何收發包的問題,即能連接上
❿ 如何在Ubuntu下配置L2TP VPN
打開 /etc/ipsec.conf 文件,做如下配置:
config setup nat_traversal=yes virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!10.152.2.0/24 # 這里包含的網路地址允許配置為遠程客戶端所在的子網。換句話說, # 這些地址范圍應該是你的NAT路由器後面的客戶端的地址。 oe=off protostack=netkey conn L2TP-PSK-NAT rightsubnet=vhost:%priv also=L2TP-PSK-noNAT conn L2TP-PSK-noNAT authby=secret pfs=no auto=add keyingtries=3 rekey=no # Apple 的 iOS 不會發送 delete 提醒, # 所以我們需要通過死亡對端(dead peer)檢測來識別斷掉的客戶端 dpddelay=30 dpdtimeout=120 dpdaction=clear # 設置 ikelifetime 和 keylife 和 Windows 的默認設置一致 ikelifetime=8h keylife=1h type=transport # 替換 IP 地址為你的本地IP (一般是,私有地址、NAT內的地址) left=x.x.x.x # 用於升級過的 Windows 2000/XP 客戶端 leftprotoport=17/1701 # 要支持老的客戶端,需要設置 leftprotoport=17/%any right=%any rightprotoport=17/%any # 強制所有連接都NAT,因為 iOS forceencaps=yes
注意你的ipsec.conf文件,"config setup" 和 "L2TP-PSK-NAT"、 "L2TP-PSK-NAT"應該頂著行頭寫,而其它行應該以8個空格縮進。
打開 /etc/ipsec.secrets,配置:
x.x.x.x %any: PSK "somegoodpassword"
這里x.x.x.x 替換為你的伺服器的IP地址,並設置一個復雜的密碼。
啟動 IPSEC 服務:
/etc/init.d/ipsec start
使用如下命令確認 ipsec 是否工作正常:
sudo ipsec verify
應該沒有任何錯誤才行:
Checking your system to see if IPsec got installed and started correctly:Version check and ipsec on-path [OK]Linux Openswan U2.6.28/K2.6.32-32-generic-pae (netkey)Checking for IPsec support in kernel [OK]NETKEY detected, testing for disabled ICMP send_redirects [OK]NETKEY detected, testing for disabled ICMP accept_redirects [OK]Checking that pluto is running [OK]Pluto listening for IKE on udp 500 [OK]Pluto listening for NAT-T on udp 4500 [OK]Checking for 'ip' command [OK]Checking for 'iptables' command [OK]Opportunistic Encryption Support [DISABLED]
在 /etc/init.d 下創建一個名為 ipsec.vpn 的文件,內容如下:
case "$1" in start) echo "Starting my Ipsec VPN" iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec start /etc/init.d/xl2tpd start;; stop) echo "Stopping my Ipsec VPN" iptables --table nat --flush echo 0 > /proc/sys/net/ipv4/ip_forward /etc/init.d/ipsec stop /etc/init.d/xl2tpd stop;; restart) echo "Restarting my Ipsec VPN" iptables -t nat -A POSTROUTING -o eth0 -s 10.152.2.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward for each in /proc/sys/net/ipv4/conf/* do echo 0 > $each/accept_redirects echo 0 > $each/send_redirects done /etc/init.d/ipsec restart /etc/init.d/xl2tpd restart ;; *) echo "Usage: /etc/init.d/ipsec.vpn {start|stop|restart}" exit 1;;esac
這會配置防火牆轉發。記得修改上面文件的本地IP地址池10.152.2.0/24為你自己的。
然後給這個文件設置可執行許可權:
sudo chmod 755 ipsec.vpn
禁止默認的 ipsec 服務腳本運行:
sudo update-rc.d -f ipsec remove
然後,啟用我們剛才定製的這個:
sudo update-rc.d ipsec.vpn defaults
L2TP
修改 /etc/xl2tpd/xl2tpd.conf :
[global]ipsec saref = no [lns default]ip range = 10.152.2.2-10.152.2.254local ip = 10.152.2.1require chap = yesrefuse pap = yesrequire authentication = yesppp debug = yespppoptfile = /etc/ppp/options.xl2tpdlength bit = yes
配置說明如下:
ip range = 可以連接VPN服務的客戶端IP地址范圍
local ip = VPN 伺服器的IP,必須在客戶端IP范圍之外
refuse pap = 拒絕 pap 認證
ppp debug = 測試時打開
選擇一個復雜的挑戰-響應式驗證字元串。雖然沒有最短長度限制,不過它應該至少有16個字元,也應該足夠復雜才能保證安全。
打開文件 /etc/xl2tpd/l2tp-secrets ,填入你的密碼:
* * exampleforchallengestring
打開文件 /etc/ppp/options.xl2tpd,做如下配置:
refuse-mschap-v2refuse-mschapms-dns 8.8.8.8ms-dns 8.8.4.4asyncmap 0authcrtsctsidle 1800mtu 1200mru 1200lockhide-passwordlocal#debugname l2tpdproxyarplcp-echo-interval 30lcp-echo-failure 4
ms-dns 選項設置要給客戶端分配的 DNS 伺服器,當客戶端連接時,就會被分配這些 DNS。如果要加入多個 DNS,就每行一個,分別寫幾行。
如果你要給客戶端推送wins設置,可以分別設置如下選項。
mtu 和 mru 按照openswan.org的說法,減小 mru/mtu 的大小非常重要。因為 l2tp/ipsec 會封裝幾次,可能導致性能下降,減小這個配置的大小可以一次性傳輸全部的包。
proxyarp 可以將連接的客戶端的IP地址和乙太網地址加入的系統的ARP表中。這會影響到本地區域網內其它客戶端。
name l2tpd 用在 PPP驗證文件裡面。
添加用戶
打開文件 /etc/ppp/chap-secrets ,做如下配置:
user1 l2tpd chooseagoodpassword *user2 * chooseagoodpassword *
每行包括如下欄位:
客戶端 = 用戶名稱
伺服器 = 在上面的 /etc/ppp/options.xl2tpd 定義的名字
密碼 = 用戶密碼,你應該設置一個足夠復雜的密碼
IP 地址 = * 表示用戶可以從任何地址連接,否則設置用戶只能從特定的地址連接
注意:你可以添加多個用戶。
IP轉發
打開文件 /etc/sysctl.conf,修改配置:
net.ipv4.ip_forward=1
載入新的配置:
sysctl -p
啟動VPN
sudo /etc/init.d/ipsec.vpn restartsudo /etc/init.d/xl2tpd restart
排除故障
如果遇到了問題,以下命令可以幫助你找到問題:
sudo tcpmp -i ppp0sudo tail -f /var/log/auth.logsudo tail -f /var/log/syslog
你可以可以在伺服器上使用如下命令來監控:
sudo tcpmp -i eth0 host aaa.bbb.ccc.ddd and not port ssh
這里aaa.bbb.ccc.ddd 是你的客戶端的公網地址。