CentOS搭建V~P~N服务,实现虚拟专用网络
什么是V-P-N
V-P-N即虚拟专用网络,它的功能是:在公用网络上建立专用网络,进行加密通讯。
V-P-N网关通过对数据包的加密和数据包目标地址的转换实现远程访问。V-P-N有多种分类方式,主要是按协议进行分类。
V-P-N可通过服务器、硬件、软件等多种方式实现。本文记录的是 Linux 系统下V-P-N服务器的搭建。
实验环境
- VMware Workstations
- 一台最小化安装的CentOS7,内网IP(仅主机模式):192.168.50.128,外网IP(NAT模式):192.168.204.133
- 一台Windows7,内网IP(仅主机模式):192.168.50.129
检查网络连通性
CentOS上执行以下命令:
# 检查centos到windows之间的网络连通性
ping -c 4 192.168.50.129
# 检查centos到互联网的网络连通性
ping -c 4 www.baidu.com
安装pptpd软件包
yum install -y epel*
yum install -y ppp pptpd
修改配置文件options.pptpd
vim /etc/ppp/options.pptpd
查找ms-dns
选项,解除本行注释,同时修改NDS地址
修改配置文件pptpd.conf
vim /etc/pptpd.conf
查找ppp
选项,解除本行注释
查找localip
选项和remoteip
选项
其中localip
代表虚拟专用网络的本机地址,remoteip
代表虚拟专用网络客户端的地址池
修改chap-secrets
配置文件,添加登录用户
vim /etc/ppp/chap-secrets
其中,client
代表用户名,secret
表示密码,IP addressses
表示允许登录的IP地址(*代表不限制登录IP)
启动服务
systemctl restart pptpd
systemctl status pptpd
关闭防火墙
setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state
开启Linux的路由功能
iptables -A FORWARD -i ens37 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
解释(ens37
为内网网卡,ens33
为外网网卡):
第一条命令:让发送至内网网卡的数据全部通过
第二条命令:修改数据报头信息
第三条命令:开启Linux的路由功能
第四条命令:查看是否启用了路由功能,1代表启用,0代表禁用
具体命令需要根据自己的网卡名称进行修改
设置开机自启
将 开启Linux路由功能 的命令写成shell脚本
vim /root/nat.service
添加如下内容(具体命令需要根据自己的网卡名称进行修改):
#!/bin/bash
iptables -A FORWARD -i ens37 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward
添加可执行限权
chmod +x /root/nat.service
将脚本添加到开机自启目录
echo -e "/bin/bash /root/nat.service" >> /etc/rc.local
chmod +x /etc/rc.local
添加pptpd服务开机自启
systemctl enable pptpd
Windows7上配置连接V_P_N
右击网络
,选择属性
设置新的连接或网络
连接到工作区
填写V-P-N服务器的IP地址(即V-P-N服务器的内网IP)
输入用户名密码,点击连接
查看连接状态
查看IP信息(可见V-P-N连接分配的IP地址)
检查互联网的连通性
访问网页
本文链接:https://www.cnblogs.com/connect/p/linux-service-virtual-private-network.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?