您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
pptp实战001-以指定服务器ip来上网
发布时间:2023-04-26 01:18:07编辑:雪饮阅读()
-
首先我说下我的参考资料
https://zhuanlan.zhihu.com/p/582065907
https://www.freesion.com/article/18141527258/
https://blog.csdn.net/m0_48096446/article/details/128434459
https://blog.csdn.net/weixin_42777366/article/details/123203767
https://www.cnblogs.com/APeng2019/p/10719358.html
https://blog.csdn.net/qq_51552173/article/details/127133857
目标:
我这里是希望在两个网络之间建立局域网,比如我在公司网络环境下有一台电脑a,我在家里网络环境下有一台电脑b,那么我现在就是说我要在家里的这个电脑b和我在公司网络环境下的这个电脑a组成一个局域网,当然不能手动硬把这两台搬到一起咯。
为了实现这个目标,第一步我这里计划是先让我家里的电脑以我的一个阿里云服务器(在新加坡网络上)的ip进行上网。
那么我这里总结下大概是这样的
首先我的环境是CentOS 7.9.2009 x86_64
1检查是否支持PPTP
modprobe ppp-compress-18 && echo ok
#返回OK
zgrep MPPE /proc/config.gz
#返回CONFIG_PPP_MPPE=y 或 =m
cat /dev/net/tun
#返回cat: /dev/net/tun: File descriptor in bad state
以上三条命令满足一条即为支持PPTP
2、安装相关软件(下面四个软件用yum安装即可)
ppp、pptpd、iptables、iptables-services(这个一般好像是高点版本的centos已经没有这个了,没有这个则无法执行命令如“service iptables save”这样以service开头的命令语句了)
这里可能你需要添加repo源
添加与安装源
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
检查是否已添加到源列表中:
yum repolist
更新源列表:
yum -y update
3配置pptp(pptpd.conf)
在/etc/pptpd.conf文件中我这里已经配置完成的局部重要配置如
# (Recommended)
localip 公网ip
remoteip 192.168.你的自定义网段.234-238,192.168.你的自定义网段.245
这里自定义网段我目前理解为当pptp客户端连接到该pptpd服务后,则该客户端在该pptpd网络中的客户端的局域网ip属于是吧。
4配置pptp(options.pptpd)
我这里配置完成后局部重要部分如
# specifies the secondary DNS address.
ms-dns 8.8.8.8
ms-dns 8.8.4.4
其实这两个dns我觉得就像是我们正常上网时候所使用的主dns与备dns差不多吧。有人说也可以用阿里云的,而我这里的服务器也是阿里云的新加坡服务器。
5配置pptp账号
编辑/etc/ppp/chap-secrets设置PPTP账号密码
用户名 pptpd 密码 *//每个字段之间用tab键隔开 *表示用任意IP连接PPTP都可以
样例:登录账号为root 密码为123 这样写:
root pptpd 123 *
这里的用户名是自定义的,即便你linux中没有该用户名
6编辑/etc/sysctl.conf修改内核参数支持内核转发
net.ipv4.ip_forward=1
输入命令生效:sysctl -p
7 安全组放行
放行tcp的47和1723端口
8然后执行一个脚本(防火墙规则)如
[root@iZt4n8iblf9qk34k8jxjybZ ~]# cat iptables_script.sh
#!/bin/bash
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
iptables -A OUTPUT -o lo -m state --state NEW -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -m state --state NEW -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -P INPUT DROP
service iptables save
service iptables restart
systemctl restart iptables
service pptpd restart
pptpd
systemctl restart pptpd
当然执行完这些脚本,我这里曾经出现过pptp客户端连接上后无法上网的情况,处理方式如下
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source x.x.x.x
(192.168.0.0/24为VPN的网段,eth0 为外网网卡,xxxx 为外网ip )
这个是参考阿里云ECS搭建的PPTPVPN内网通,但无法访问外网,无法转发。 - 阿鹏2019 - 博客园 (cnblogs.com)
或许只是偶然吧,因为之前iptables规则可能乱了,我用iptables -F清理下,后面又重新执行了上面的脚本,反正这里一般问题挺多的,感觉iptables属于是大学问了,精通这个的应该算是牛人咯。
9测试pptd客户端连接
回到刚开始的目标,由于我家里有台电脑和一个华为网络,然后还有就是我手机流量。
那么华为网络可以模拟这次试验中的假如是网络a,那么手机流量假如是网络b。
但我这里更复杂的是我的oppo reno7的vpn貌似不支持更低安全性的vpn链接,所以我要采用pixel4a,这个是我手里的另外一个备用机子,但是它没有网络,我又不想和华为网络连接,我的电脑已经连接到华为网络(下一步就是我电脑应该是需要和另外一个电脑在局域网通信,并且基于pptp情况下),那么所以我这里采取的方法是用oppo reno7共享流量为热点给pixel4a连接,然后pixel4a中是可以建立vpn连接的,由于我们开头也看到了要安装ppp和pptpd两个软件,所以我觉得安全加密应该就是勾选”PPP加密(MPPE)”,该协议应该是安全性比较低,可能是默认支持吧,所以oppo reno7可能是最近几年才出来的手机,肯定比pixel4a对安全性要求更要高的缘故,所以oppo reno7没有ppp加密吧。
我恍惚间好像看到有资料说是ppp加密属于是安全性比较低的。
别的就不在废话了,看看pixel4a是怎么连接到pptpd的。
连接上之后我们去百度(如果是移动端chrome浏览器就开启下“桌面版网站”,不然百度直接搜索不到你ip的比较明显的呈现结果)
可以看到连接的服务器ip地址和你百度上查询你的ip地址一样了,至此目标第一步达成了。
关键字词:pptp,指定,ip,上网
相关文章
- 4-35. 使用推荐方式引入css和js文件的好处 1(wp_enque
- 4-34. 推荐的引入css和js文件的方式(wp_enqueue_style
- 15_JavaScript_对象_Function(一句话动态创建方法并执
- 纯前端js实现二维码生成并转文件并上传到oss
- js读取excel JavaScript读取excel
- webman-查詢構造器-獲取一列(指定id字段的值作爲索引)
- webman-查詢構造器-獲取所有行、獲取指定列
- webman-请求-获取服务端ip、服务端端口、判断是否ajax
- webman-請求-獲取请求客户端端口、請求客戶端ip、请求
- webman-請求-獲取請求客戶端ip及獲取請求客戶端端口