centos7搭建pptp

2023-11-15

1、检查是否支持
终端输入:modprobe ppp-compress-18 && echo yes
返回 yes 表示支持 pptp

2、安装组件

yum install epel-release -y
yum install ppp iptables pptpd -y

编辑pptpd.conf

vim /etc/pptpd.conf

找到下面的两行,去掉注释并修改:

localip 192.168.1.56(本机)
remoteip 192.168.250.200-254

编辑options.pptpd

vim /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 114.114.114.114

配置文件举例:

1.name pptpd                        #自行设定的VPN服务器的名字,可以任意
2.#refuse-pap                        #拒绝pap身份验证
3.#refuse-chap                      #拒绝chap身份验证
4.#refuse-mschap                 #拒绝mschap身份验证
5.require-mschap-v2             #为了最高的安全性,我们使用mschap-v2身份验证方法
6.require-mppe-128              #使用128位MPPE加密
7.ms-dns 8.8.8.8                   #设置DNS
8.ms-dns 8.8.4.4
9.proxyarp                            #启用ARP代理,如果分配给客户端的IP与内网卡同一个子网
10.#debug                              #关闭debug
11.lock
12.nobsdcomp
13.novj
14.novjccomp
15.#nologfd                            #不输入运行信息到stderr
16.logfile /var/log/pptpd.log    #存放pptpd服务运行的的日志

设置账号密码

vim /etc/ppp/chap-secrets
test      pptpd    test   *

修改内核

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

这条命令的意思是使内核支持转发,还需要下面一条命令来使修改生效:

sysctl -p

添加转发规则

iptables -t nat -A POSTROUTING -s 192.168.250.0/24 -o eth0 -j MASQUERADE
iptables -I FORWARD  -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356

补充:

iptables -X -t nat 清除转发规则(iptables -F);
iptables -t nat -L 可以查看 NAT 表是否已经生效
1.#带行号查看当前所有规则 
2.iptables -L -n --line-numbers
3.#清除所有规则
4.iptables -F
5.#删除指定行号(以下命令中的“5”为指定行号)规则
6.iptables -D 5
7.#保存当前配置;相当于旧版/etc/init.d/iptables save
8.service iptables save
9.#重启iptables;相当于旧版本/etc/init.d/iptables restart
10.service iptables restart
11.#注册iptables服务;相当于旧版 chkconfig iptables on
12.systemctl enable iptables.service
13.#开启服务
14.systemctl start iptables.service
15.#查看状态
16.systemctl status iptables.service

这应该很全了,ipdables 配置文件位于 /etc/sysconfig/iptables
启动服务

systemctl start pptpd
systemctl enabled pptpd

连不上VPN
检查是否开放了 1723 端口,一般是因为这个原因吧,其他错误见参考的连接
打不开网页

vim /etc/ppp/ip-up
在 exit 0 前写入 : ifconfig $1 mtu 1500

这样就解决无法访问网页的问题了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7搭建pptp 的相关文章

  • 无法在 Linux 中阻止从命名管道 (FIFO) 读取

    很奇怪 我似乎无法完成这项工作 这是我的架构 我有一个命名管道 它将在永远运行 root读取器进程和多个应用程序编写器进程 读者进程必须是blocking当作家们在nonblocking 因此 这就是我在阅读器进程中所做的 该进程将运行ro
  • 我如何知道哪个 /dev/input/eventX (X=0..7) 有 Linux 输入流?

    我正在尝试捕获 Linux 键盘 鼠标输入 并且我正在读取类似的事件 dev input event2 但似乎输入有时会定向到 dev input event2 有时到 dev input event3 我想知道是否有一个地方可以找出哪个流
  • Ubuntu 18.04:laravel/framework v6.9.0 需要 ext-mbstring * -> 您的系统中缺少请求的 PHP 扩展 mbstring

    在有人将其记下来进行复制之前 我检查了其他页面 但它们没有帮助 我正在尝试在 PHP 7 2 上安装 Laravel 6 的软件包 我也尝试过 PHP 7 4 不幸的是 我收到以下错误 laravel framework v6 9 0 re
  • 如何找到某个命令的目录?

    我知道 当您使用 shell 时 唯一可以使用的命令是可以在 PATH 上设置的某些目录中找到的命令 即使我不知道如何查看 PATH 变量上的目录 这是另一个可以回答的好问题 我想知道的是 我来到 shell 并写道 lshw 我想知道 s
  • 使用端口 80 (Ubuntu / Linode) 运行 Node.js 的最佳实践 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在设置我的第一个Node js服务器上的cloud Linux node我对以下细节还很陌生Linux admin 顺便说一句 我并没有尝试
  • php.ini 更改,但在 Ubuntu 上无效

    我想更改 PHP 上传文件大小的限制 这是我的输出的一些信息phpinfo https www php net manual en function phpinfo php Configuration File php ini Path e
  • 产生并处理软件中断

    有人可以告诉我如何在Linux下生成软件中断然后用request irq处理它吗 或者也许这是不可能的 您可以使用软中断来代替 您可以通过编辑 include linux interrupt h 来定义您的 sofirq 然后使用函数 ra
  • 通过 C 将线程固定到 cpuset 中的核心

    我有 cgroup cpuset set1 set1有2 5 8 我想将一个进程绑定到该 cpuset 然后将该进程中的一个线程固定到核心 4 cpuset 的名称 线程名称以及我应该将线程绑定到的核心位于 m 配置文件中 是否有任何 C
  • Java Linux 非阻塞套接字超时行为

    我有一个 Java 非阻塞服务器 它跟踪选择器中的所有套接字通道 然后我与服务器建立 500 个连接并定期发送数据 服务器接收到的每条数据都会回显给客户端 问题来了 测试工作了几个小时 然后突然逐渐地 服务器管理的所有套接字在尝试读取数据时
  • 如何让SSH命令执行超时

    我有一个这样的程序 ssh q email protected cdn cgi l email protection exit echo output value gt 在上面的代码中 我尝试通过 SSH 连接到远程服务器 并尝试检查是否可
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 在 docker windows 上运行 linux 容器

    我在 Windows 10 机器上安装了 Docker for Windows 它要求我启用 HyperV 功能 一切都安装正确并且运行良好 虽然有一件事让我大吃一惊 我实际上能够在 docker windows 上运行 Linux 容器
  • 使用 cmake 和 opencv 对符号“gzclose”的未定义引用[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我尝试构建该项目 doppia https bitbucket org rodrigob doppia 但发生链接错误 我想这是一
  • 由于参数中有空格,Bash 脚本因未知选项而失败

    我正在尝试运行 aws create lambda 函数 事情的经过如下 eval aws lambda create function function name FUNCTION NAME runtime RUNTIME role RO
  • Bash 变量:区分大小写?

    Bash shell 脚本区分大小写吗 是可变的date与DATE 是的 它区分大小写 就像 UNIX 的其余部分一样 date and DATE是两个不同的变量 makefile and Makefile是两个不同的文件 h and H是
  • SSL 和 Tkinter 不存在于 Python 3.5.2、Debian Linux 的源代码构建中

    我刚刚将 Python 3 5 2 下载到我的 Debian 机器上并使用以下命令构建它 configure make make test sudo make install 一切正常 但在make test输出中 它显示安装程序由于未安装
  • 使用Linux虚拟鼠标驱动

    我正在尝试实施一个虚拟鼠标驱动程序根据基本 Linux 设备驱动程序书 有一个用户空间应用程序 它生成坐标以及内核模块 See 虚拟鼠标驱动程序和用户空间应用程序代码 http www embeddedlinux org cn Essent
  • 是否可以允许jenkins访问只有root或某些特定程序可以访问的文件?

    我基本上想做的是允许 jenkins 访问我的 android sdk linux 文件夹和所有子目录 我的老板不想自己更改文件夹的权限 我应该在构建过程中这样做 我见过一些在构建过程中在执行 shell 中运行一些命令的示例 是否可以在该
  • 获取当前时间(以小时和分钟为单位)

    我正在尝试从系统收集信息 并且需要获取当前时间 以小时和分钟为单位 目前我有 date awk print 4 输出如下 16 18 54 怎样才能把秒数去掉呢 提供格式字符串 date H M Running man date将给出所有格
  • Kubernetes Pod 已终止 - 退出代码 137

    我需要一些关于 k8s 1 14 和在其上运行 gitlab 管道所面临的问题的建议 许多作业都会抛出退出代码 137 错误 我发现这意味着容器突然终止 集群信息 库伯内特版本 1 14 使用的云 AWS EKS 节点 C5 4xLarge

随机推荐