首页 杂烩分享

无公网服务器通过另一台有公网服务器联网


本教程学习于无公网 CVM 通过带公网 CVM 出访公网,本人参考并学习此教程。

服务器条件

我的两台服务器:
A有内网10.16.16.8 外网120.120.120.120 系统centos 7.9
B只有内网10.16.16.9 系统centos 7.9
两台服务器内网互通。(以上ip均虚拟)

原计划

原本我计划通过iptables来实现NAT功能,从而实现B服务器通过内网链接A服务器,从而通过公网访问互联网。但是碍于自己太小白,折腾半天也没能完成。也通过了tinyproxy实现部分功能,但是不是我想要的结果,不能实现任意代理。最终通过搜索看到上述文章进行学习。

公网服务器设置

  1. 首先安装PPTP模块,因为公网ip在此,所以设置为服务端

    yum install -y pptpd
  2. 执行以下命令,打开 pptpd.conf 配置文件。按i进如编辑,编辑完成按esc退出编辑,按:wq保存文件。(按:qa则是不保存)

    vim /etc/pptpd.conf

    并在最下面添加两行代码,代码意思是通过虚拟网关实现,localip即本地的虚拟网关,remoteip是开放的网关ip,类似于路由器一样,分配给链接的服务器。

    localip 192.168.0.1
    remoteip 192.168.0.234-238,192.168.0.245

    3.执行以下命令,打开 /etc/ppp/chap-secrets 配置文件。按i进如编辑,编辑完成按esc退出编辑,按:wq保存文件。(按:qa则是不保存)

    vim /etc/ppp/chap-secrets

    在下方添加如下格式代码:(根据示意自行更改用户名和面膜)

    root    pptpd    123456    *

    其分别代表这以下意思

    用户名    pptpd    密码    *
  3. 此步骤是启动pptpd服务。

    systemctl start pptpd

    若想添加自启则执行以下命令,关闭则将on改为off

    chkconfig pptpd on

    5.同时还需要开启转发,及iptables功能。

    echo 1 > /proc/sys/net/ipv4/ip_forward

    以上命令为临时开启,重启消失。如想永久开启,则执行以下命令编辑,将net.ipv4.ip_forward=0改为net.ipv4.ip_forward=1,即可。

    vim /etc/sysctl.conf

    开启iptables nat功能

    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE

    若想自动生效,则安装iptables-services,之后开启功能,然后保存配置。并配置自启。

    yum install iptables-services
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
    service iptables save
    systemctl enable iptables.service

    内网服务器设置

    1.安装PPTP和PPTP-SETUP,在centos无法安装pptp-setup,需要自行配置拨号文件(详见下面)。

    yum install -y pptp pptp-setup

    2.配置拨号文件,首先要知道公网服务器的内网ip,及10.16.16.8。创建了一个名为test的拨号文件

    pptpsetup --create test --server 10.16.16.8 --username root --password 123456 --encrypt

    其代表含义为

    pptpsetup --create 配置文件的名称 --server 有公网 IP 的云服务器的内网 IP --username 连接 PPTP 的用户名 --password 连接 PPTP 的密码 --encrypt

    3.进行拨号,test为配置文件

    pppd call test

    4.设置路由

    route add -net 0.0.0.0 dev ppp0

    若想3,4步骤开机自动生效。则在cd /etc/rc.d/init.d并创建个.sh文件,例如我的叫a.sh,内容如下

    #!/bin/bash
    #chkconfig:2345 65 65 //
    pppd call test
    sleep 5s
    route add -net 0.0.0.0 dev ppp0

    之后执行,即可实现自启。

    chkconfig --add a.sh
    chkconfig a.sh on

    5.最后ping www.baidu.com,若能够ping通,则证明联网成功。





文章评论

    鸟叔 访客ChromeWindows
    2022-09-6 10:35   回复

    干货文章啊

    鸟叔 访客ChromeWindows
    2022-05-31 6:36   回复

    这就是内网穿透是吧

    防水涂料加盟 访客FireFoxWindows
    2022-02-9 10:20   回复

    感谢分享 赞一个

    Teacher Du 访客FireFoxLinux
    2021-09-2 14:53   回复

    无需装pptp,直接通过iptables地址伪装就行了

      布衣者 站长ChromeWindows
      2021-09-2 17:20   回复

      看来还要好好学iptables,我还以为不能行呐

    苹果 访客ChromeAndroid
    2021-08-29 23:24   回复

    加油

      布衣者 站长ChromeWindows
      2021-08-30 9:16   回复

      嘿嘿,参考的别人的文章。

    苹果 访客ChromeAndroid
    2021-08-29 23:23   回复

    困死啦

目录