Archlinux使用pptpclient

pptpclient是一个实现Microsoft PPTP协议的程序。因此它能够被用来接入另一个Microsoft VPN网络,比如学校和单位。(from ArchWiki)

安装

sudo pacman -S pptpclient

配置

pptpsetup --create my_tunnel --server vpn.example.com --username alice --password foo --encrypt

要关心的配置文件包括:

/etc/ppp/options.pptp
/etc/ppp/chap-secrets
/etc/ppp/peers/my_tunnel

其中chap-secrects是用来存储密码的(是明文存的。。。只是需要管理员权限才能看到而已),对应的是默认的认证协议(CHAP)。根据各人需求的协议,该文件会有所不同。比如我这次需要的是更low的PAP协议,那么我需要修改options.pptp文件以生成一个pap-secrets文件,方法是注释掉下面这行:

refuse-pap

配置完成后,三个文件大概长这样:

# /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"是我的登陆密码,对应替换掉就可以了。如果你在下面的连接过程中发现有MPPE相关的报错,可以考虑解注释掉那句require-mppe-128,具体干嘛的不懂。

连接

测试一下:

pon sq debug dump logfd 2 nodetach

这条命令应当不会终止,如果终止了说明配置出了问题。此时你查看一下ip应该能发现一个ppp0的网卡,我的输出信息如下:

[maxkibble@ARCH ~]$ ip addr
30: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 3

平时使用vpn需要下面两条命令:

pon sq
ip route add default dev ppp0

这样就可以访问局域网里的服务器啦!

结束使用vpn:

ip route del default dev ppp0
poff sq
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容