有些任务需要访问位于可以访问 Internet 但没有外部 IP 地址的本地网络上的设备。 在这种情况下,可能有多个本地网络和设备。 为此有几种不同的服务。 在此示例中,我们将研究在运行 Debian 12 的 VDS 服务器上安装 PPTP 服务。
我们的目标是配置服务的服务器部分,我们可以将本地网络的设备连接到该部分,从而获得对它们的远程访问,因为 VDS 服务器具有专用 IP。
例如:您在办公室或乡村别墅放置了一台通过移动互联网连接的服务器。 通常,移动运营商不会向个人提供永久的专用 IP。 为了能够通过互联网连接到它,我们将在 VDS Debian 12 上配置 PPTP 服务的服务器部分,并将您的家庭服务器配置为客户端部分,它将连接到服务器。
1. 安装服务
apt install ppp pptpd
1.1 配置PPTP服务 /etc/pptpd.conf
让我们决定本地网络并将配置带到表单中
localip 10.10.10.1
remoteip 10.10.10.2-254
如果您订购了具有多个外部 IP 地址的服务器,您可以添加一行,清楚地表明我们的服务将在哪个 IP 上运行。
listen external_ip
1.2 在 /etc/ppp/pptpd-options 文件末尾添加选项
mtu 1400
mru 1400
auth
require-mppe
如有必要,编辑设置
ms-dns 8.8.8.8
ms-dns 8.8.4.4
1.3 取消注释/etc/sysctl.conf选项
net.ipv4.ip_forward=1
应用设置:
sysctl -p
1.4 让我们设置一个防火墙,在我们的例子中是 iptables
apt install iptables
1.4.1 添加规则,其中eth0为外部接口名称
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 1723 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
1.4.2 在连接的客户端之间启用本地网络,其中 eth0 是外部接口的名称
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.10.10.0/24 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT
1.4.3 禁止通过VDS服务器访问互联网
如有必要,当目标是合并本地网络并访问本地设备以便设备继续使用其 Internet 时,请添加一条规则,其中 eth0 是具有外部 ip 的接口。
iptables -I FORWARD -s 10.10.10.0/24 -o eth0 -j DROP
注意客户端部分,您需要取消选中使用远程网络上的默认网关选项。 我们将统一本地网络,但访问互联网将通过本地提供商,而不是通过 VDS 服务器。
1.4.4 让我们保存规则
iptables-save > /etc/iptables.conf
1.4.5 添加启动规则,在/etc/network/interfaces文件末尾添加一行
pre-up /sbin/iptables-restore < /etc/iptables.conf
1.5 将用户添加到/etc/ppp/chap-secrets 文件中
在此示例中,为 user1 分配了任意空闲 IP 地址,而 user2 将始终收到静态 IP。
user1 pptpd password1 "*"
user2 pptpd password2 "10.10.10.10"
1.6 添加到启动并应用设置
systemctl enable pptpd
service pptpd restart
2. 查看活动连接
您可以使用命令查看所有活动连接及其 IP 地址。
2.1 使用 ifconfig
ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1396
inet 10.10.10.1 netmask 255.255.255.255 destination 10.10.10.2
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 323 bytes 49503 (48.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 22 bytes 626 (626.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ppp1: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1396
inet 10.10.10.1 netmask 255.255.255.255 destination 10.10.10.10
ppp txqueuelen 3 (Point-to-Point Protocol)
RX packets 24 bytes 896 (896.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 24 bytes 890 (890.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.2 使用路线
10.10.10.2 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.10.10.10 0.0.0.0 255.255.255.255 UH 0 0 0 ppp1
2.3 使用服务 pptpd 状态
pptpd.service - PoPToP Point to Point Tunneling Server
Loaded: loaded (/lib/systemd/system/pptpd.service; enabled; preset: enabled)
Active: active (running) since Thu 2024-03-07 13:42:51 MSK; 4h 5min ago
Docs: man:pptpd(8)
man:pptpctrl(8)
man:pptpd.conf(5)
Main PID: 480 (pptpd)
Tasks: 5 (limit: 1099)
Memory: 4.3M
CPU: 9.462s
CGroup: /system.slice/pptpd.service
├─480 /usr/sbin/pptpd --fg
├─605 "pptpd [123.123.123.123:97EE - 0400]"
├─606 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 10.10.10.1:10.10.10.3 ipparam 123.123.123.123 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 123.123.123.123>
├─986 "pptpd [123.123.123.123:D114 - 0580]"
└─987 /usr/sbin/pppd local file /etc/ppp/pptpd-options 115200 10.10.10.1:10.10.10.2 ipparam 123.123.123.123 plugin /usr/lib/pptpd/pptpd-logwtmp.so pptpd-original-ip 123.123.123.123>
服务器已配置并准备好进行连接。
也可以看看:
暂时没有评论