【问题标题】:linux PPTP server relaylinux PPTP服务器中继
【发布时间】:2015-10-22 05:47:30
【问题描述】:

我想创建一个有PPTP服务器和客户端的VPS,这个VPS用作中继。

有两个服务器:VPS1和VPS2,都安装PPTPD,VPS1安装pptp客户端。

我想要这个:

用户 ---- PPTP ----> VPS1 ----- PPTP ----> VPS2

用户连接到 VPS1,所有网络流量路由到 VPS2。 我这样做是因为用户很难直接连接 VPS2,需要一个中间服务器作为中继。

如何配置 iptable 以使其工作?谢谢。

【问题讨论】:

    标签: linux pptp


    【解决方案1】:

    PPTP 的奇怪用法。您的 ISP 必须是中国电信上海。

    如果将 VPS1 中的所有网络流量路由到 VPS2,则必须知道用户的 IP 地址并设置例外。否则用户将永远不会收到回复包。

    也许您可以使用 iptables 来启用 D​​NAT。将 VPS1 设为路由器,将 VPS2 设为 内部 pptp 服务器。

    首先,你应该检查内核模块ip_nat_pptpip_conntrack_pptp是否被加载。 PPTP 使用 TCP 端口 1723 传输控制命令,使用 GRE 传输数据。由于 GRE 没有端口,服务器必须使用 CallID 来跟踪端点并实现 NAT。这称为PPTP Passthrough

    # lsmod | grep pptp
    

    如果没有加载,则加载它们。

    # modprobe ip_nat_pptp
    # modprobe ip_conntrack_pptp
    

    那么你需要开启 IPv4 网络转发:

    # sysctl -w net.ipv4.ip_forward=1
    

    现在您可以创建 iptables 规则来接受传入和转发请求:

    # iptables -A INPUT -d $VPS1_IP_ADDR -p tcp --dport 1723 -j ACCEPT
    # iptables -A INPUT -d $VPS1_IP_ADDR -p gre -j ACCEPT
    # iptables -A FORWARD -d $VPS2_IP_ADDR -p tcp --dport 1723 -j ACCEPT
    # iptables -A FORWARD -d $VPS2_IP_ADDR -p gre -j ACCEPT
    

    最后设置 DNAT 规则:

    # iptables -A PREROUTING -d $VPS1_IP_ADDR -p tcp --dport 1723 -j DNAT --to-destination $VPS2_IP_ADDR
    # iptables -A POSTROUTING -d $VPS2_IP_ADDR -p tcp --dport 1723 -j MASQUERADE
    

    您现在可以使用 VPS2 上 pptpd 的用户名/密码连接 VPS1。

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 2013-03-28
      • 2014-11-05
      • 2016-01-21
      • 2015-03-08
      • 2018-09-04
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      相关资源
      最近更新 更多