You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何实现无需内网IP、基于静态公网IP的服务器SSH直连访问

如何实现无需内网IP、基于静态公网IP的服务器SSH直连访问

首先得明确你的核心需求:给CentOS 7服务器分配一个独立的公网IP,让外部用户能直接SSH访问,不需要通过路由器的1:1 NAT,同时路由器本身占用的公网IP不参与这个服务。结合你用的是TP-Link商用路由(无相关NAT绕过功能),以及手里的/29公网IP池(5个可用),给你几个可行的方案:

方案一:把服务器直接接入公网链路(最直接的方式)

如果你的入户线路(比如光纤猫)已经设置为桥接模式,且ISP允许同一链路下接入多个设备使用不同公网IP,那这个方案最省心:

  1. 确认公网参数:先把ISP给你的/29网段信息理清楚——比如假设你的网段是203.0.113.8/29,可用IP是203.0.113.9-203.0.113.13,ISP提供的网关是203.0.113.8(一般是网段的网络地址),这些信息你可以找之前的ISP工单或者路由器WAN口配置里的记录。
  2. 调整物理连接:把服务器的网线从路由器LAN口拔下来,插到光纤猫的空闲LAN口上(如果光纤猫只有一个LAN口,可能需要加个小型交换机扩展)。
  3. 配置服务器公网IP
    • 登录CentOS 7服务器,先查看你的网卡名称:执行ip addr,输出里类似eth0ens33的就是你的主网卡。
    • 编辑网卡配置文件,比如/etc/sysconfig/network-scripts/ifcfg-eth0(把eth0换成你的实际网卡名):
      TYPE=Ethernet
      BOOTPROTO=static
      NAME=eth0
      DEVICE=eth0
      ONBOOT=yes
      IPADDR=你的可用公网IP(比如203.0.113.10)
      NETMASK=255.255.255.248  # 对应/29的子网掩码
      GATEWAY=ISP提供的网关IP(比如203.0.113.8)
      DNS1=8.8.8.8
      DNS2=1.1.1.1
      
    • 保存后重启网卡生效:systemctl restart network
  4. 测试验证:先在服务器上ping一下网关和百度(ping baidu.com),确认网络通了;然后找个外部设备(比如手机开热点),用ssh 你的公网IP尝试连接,能连上就成功了。

方案二:把路由器改成透明网桥模式(如果支持)

如果你的TP-Link商用路由支持网桥模式/透明模式,可以把路由器变成一个纯交换机,这样LAN口的设备直接处于公网网段:

  1. 开启网桥模式:登录路由器管理后台,找“网桥模式”相关选项(可能在“高级设置”或“网络模式”里),开启后路由器会放弃自身的NAT功能,LAN口和WAN口处于同一网段。注意开启后路由器的管理IP可能会变成你设置的公网IP,记得提前记好。
  2. 配置服务器IP:和方案一的步骤3一样,给服务器配置可用的公网IP、子网掩码、ISP网关。
  3. 测试访问:外部用SSH连接服务器的公网IP,确认能访问。

方案三:路由器LAN口直配公网IP(备选,可能受限)

如果以上两个方案都没法实施,试试在服务器上同时配置内网IP和公网IP,再调整路由器的过滤规则:

  1. 双IP配置:编辑服务器的网卡配置文件,添加第二个公网IP。比如在ifcfg-eth0里新增:
    IPADDR1=你的可用公网IP
    PREFIX1=29  # 等同于子网掩码255.255.255.248
    GATEWAY1=ISP提供的网关IP
    
    保存后重启网卡。
  2. 调整路由器规则:进入路由器管理后台,找到“LAN口设置”或“防火墙规则”,关闭LAN口的IP地址过滤(如果有这个选项),或者添加一条允许公网IP段数据包通过LAN口的规则。
  3. 测试连通性:同样用外部设备尝试SSH连接服务器的公网IP。

重要注意事项

  • 安全第一:服务器直接暴露在公网上后,一定要加固防火墙!CentOS 7用firewalld的话,执行这两条命令只开放SSH端口:
    firewall-cmd --permanent --add-service=ssh
    firewall-cmd --reload
    
    也可以把SSH默认端口22改成其他端口,降低被暴力破解的风险。
  • 确认ISP限制:提前打电话给ISP确认,是否允许你把多个公网IP分配给不同设备使用,避免出现IP无法连通的情况。
  • 网关不要搞错:服务器的网关必须是ISP提供的官方网关,而不是你路由器的公网IP,否则数据包没法正确路由到公网。

备注:内容来源于stack exchange,提问作者Prince Negi

火山引擎 最新活动