pptpclient是一個(gè)實(shí)現(xiàn)Microsoft PPTP協(xié)議的程序。因此它能夠被用來接入另一個(gè)Microsoft VPN網(wǎng)絡(luò),比如學(xué)校和單位。(from ArchWiki)
安裝
sudo pacman -S pptpclient
配置
pptpsetup --create my_tunnel --server vpn.example.com --username alice --password foo --encrypt
要關(guān)心的配置文件包括:
/etc/ppp/options.pptp
/etc/ppp/chap-secrets
/etc/ppp/peers/my_tunnel
其中chap-secrects是用來存儲(chǔ)密碼的(是明文存的。。。只是需要管理員權(quán)限才能看到而已),對應(yīng)的是默認(rèn)的認(rèn)證協(xié)議(CHAP)。根據(jù)各人需求的協(xié)議,該文件會(huì)有所不同。比如我這次需要的是更low的PAP協(xié)議,那么我需要修改options.pptp文件以生成一個(gè)pap-secrets文件,方法是注釋掉下面這行:
refuse-pap
配置完成后,三個(gè)文件大概長這樣:
# /etc/ppp/peers/sq
# written by pptpsetup
pty "/usr/sbin/pptp vpn.sei.pku.edu.cn --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name shenqi16
remotename sq
# require-mppe-128
file /etc/ppp/options.pptp
ipparam sq
# /etc/ppp/options.pptp
# Lock the port
lock
# Authentication
# We don't need the tunnel server to authenticate itself
noauth
# We won't do PAP, EAP, CHAP, or MSCHAP, but we will accept MSCHAP-V2
# (you may need to remove these refusals if the server is not using MPPE)
# refuse-pap
refuse-eap
refuse-chap
refuse-mschap
# Compression
# Turn off compression protocols we know won't be used
nobsdcomp
nodeflate
# Secrets for authentication using PAP
shenqi16 sq "xxx" *
# client server secret IP addresses
其中sq是我為連接取的名字,shenqi16是我的登錄用戶名,"xxx"是我的登陸密碼,對應(yīng)替換掉就可以了。如果你在下面的連接過程中發(fā)現(xiàn)有MPPE相關(guān)的報(bào)錯(cuò),可以考慮解注釋掉那句require-mppe-128,具體干嘛的不懂。
連接
測試一下:
pon sq debug dump logfd 2 nodetach
這條命令應(yīng)當(dāng)不會(huì)終止,如果終止了說明配置出了問題。此時(shí)你查看一下ip應(yīng)該能發(fā)現(xiàn)一個(gè)ppp0的網(wǎng)卡,我的輸出信息如下:
[maxkibble@ARCH ~]$ ip addr
30: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 3
平時(shí)使用vpn需要下面兩條命令:
pon sq
ip route add default dev ppp0
這樣就可以訪問局域網(wǎng)里的服務(wù)器啦!
結(jié)束使用vpn:
ip route del default dev ppp0
poff sq