最近在研究树莓派的远程操作的问题上遇到个问题,如果树莓派跟自己的电脑不在同一个局域网的话,操作起来比较麻烦,于是想到通过双方连接同一个VPN服务器级成局域网的方式来实现内网互通。
在Linux或者在树莓派下,首先要安装pptp-linux组件:apt install pptp-linux
一、手动创建配置文件
在/etc/ppp/peers/下创建一个文件,文件名就是vpn服务的名称,可以随便取,例如我这里创建为test
vi /etc/ppp/peers/test
然后编辑文件内容如下:
pty "pptp VPN服务器的IP地址或者域名 --nolaunchpppd"
name VPN用户名
password VPN密码
remotename PPTP
require-mppe-128
require-mschap-v2
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
noauth
persist
maxfail 0
defaultroute
replacedefaultroute
usepeerdns
修改红色标注的地方,然后保存文件。
连接和断开VPN服务器
1、连接VPN
pon VPN服务器名称(这里指的就是上面创建的test)
连接后可以通过ifconfig查看是否存在叫ppp0的连接,或者可以通过plog命令查看日志
2、断开VPN
poff VPN服务器名称(即上面的test)
poff -a,断开全部VPN连接
二、通过命令来创建配置文件(推荐使用)
上面/etc/ppp/peers/test的文件也可以通过pptpsetup命令来创建,命令格式如下:
pptpsetup --create VPN服务器名称(比如test) --server VPN服务器IP或域名 --username VPN用户名 --password VPN密码 --encrypt --start
执行完毕后,同样会在/etc/ppp/peers/下创建相应的配置文件,文件名就是上面的VPN服务器名称。
encrypt表示加密,start表示立即连接
连接VPN成功后,使用ifconfig命令查看分配到的内网IP,如下图所示,分配到的内网IP是192.168.0.235
然后尝试ping一下其他连接了该VPN的机器,如果能ping通,则说明是正常的。如果无法ping通,则可能是因为路由问题。在树莓派中,可以使用route -n查看默认的路由表,如下图:
从路由表中可以看出,默认所有网络(0.0.0.0)都是走192.168.2.1,而我们的ppp0的目标是192.168.0.1,所以我们要添加一条路由记录,让192.168.0.x的IP全部走ppp0。执行命令如下:
route add -net 192.168.0.0 netmask 255.255.255.0 dev ppp0
注意红色标注的地方,删除路由则把上面的add改成del即可。添加成功后我们再用route -n查看一下:
这里我们再ping之前的机器,可以发现已经能够ping通了,也就是实现了互连互通了。
如果想让所有网络都走VPN那条线的话,则添加路由记录如下:
route add -net 0.0.0.0 dev ppp0
0.0.0.0则表示所有IP,ppp0则表示对应的网卡网络。
ok
mjj通道