Image

知识库 → 本地网络整合(通过VDS服务器访问本地设备)

[虚拟服务器]
出版日期: 07.03.2024

有些任务需要访问位于可以访问 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>

服务器已配置并准备好进行连接。

也可以看看:





暂时没有评论