从外网访问CentOS7局域网服务器需多步配置:服务器端关闭SELinux,开放防火墙端口(如22),配置静态IP;路由器设置端口映射,将外网端口指向服务器内网IP;若为动态公网IP,需绑定DDNS域名;安全方面建议禁用root远程登录,启用SSH密钥认证,最后通过外网IP或域名加端口访问,并用telnet或nmap测试连通性,注意定期更新系统,加固防火墙规则,确保访问安全。
在许多场景下,我们需要将局域网内的CentOS7服务器(如搭建的Web服务、数据库、文件共享等)从外网访问,但局域网服务器通常没有公网IP,直接访问会受到路由器NAT(网络地址转换)的限制,本文将详细介绍通过端口转发、内网穿透(可选)等方法,实现从外网安全访问CentOS7局域网服务器的完整步骤,涵盖网络配置、防火墙设置、路由器端口转发及安全加固等关键环节。
前置条件:确认网络环境与服务器基础配置
在开始配置前,需确保以下条件满足:
局域网服务器已正常工作
- CentOS7服务器已安装并启动,能通过局域网IP(如
168.1.100)在内网中正常访问(如SSH、Web服务等)。 - 服务器网络配置正确:通过
ip addr或ifconfig查看内网IP(通常为168.x.x或x.x.x段),确保IP是静态的(避免DHCP分配导致IP变化,可通过/etc/sysconfig/network-scripts/目录下的网卡配置文件修改,如ifcfg-ens33)。
局域网网关(路由器)支持端口转发
- 路由器需具备端口转发(Port Forwarding)功能,几乎所有家用/企业路由器都支持。
- 需知道路由器的管理IP(通常是
168.1.1、168.0.1等,通过ip route show或route -n查看默认网关获取)及登录密码。
获取公网IP地址
- 局域网访问外网需通过路由器的公网IP(可访问
ipinfo.io或whatismyip.com查询),若公网IP是动态的(家庭宽带常见),建议结合动态DNS(DDNS)服务(如花生壳、No-IP等),将动态IP绑定到固定域名,避免频繁更换IP导致访问失效。
步骤1:配置CentOS7服务器防火墙与目标服务
外网访问需通过路由器端口转发到服务器,但服务器自身防火墙(CentOS7默认使用firewalld)可能阻止外部连接,需开放目标服务的端口(如SSH默认22端口、Web服务80/443端口等)。

检查并启动firewalld
systemctl status firewalld # 查看状态 systemctl start firewalld # 若未启动,执行启动 systemctl enable firewalld # 设置开机自启
开放目标端口并永久生效
以SSH服务(22端口)为例,若需开放Web服务(80端口),则添加对应端口:
# 开放SSH端口(22) firewall-cmd --permanent --add-port=22/tcp # 开放Web服务端口(80/HTTP、443/HTTPS) firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp # 重新加载防火墙使配置生效 firewall-cmd --reload
确认服务已监听所有IP
确保目标服务(如SSH、Apache/Nginx)监听的是0.0.0(所有IP),而非仅0.0.1(本地)。
- 检查SSH监听地址:编辑
/etc/ssh/sshd_config,确保ListenAddress为0.0.0(或注释掉该行,默认监听所有IP)。 - 检查Web服务(以Nginx为例):
netstat -tuln | grep :80,输出应为0.0.0:80或::80。
修改后重启服务(如SSH:systemctl restart sshd;Nginx:systemctl restart nginx)。
步骤2:配置路由器端口转发
路由器端口转发的核心作用:将外网对路由器公网IP+端口的请求,转发到局域网服务器的内网IP+端口。
登录路由器管理界面
在浏览器输入路由器管理IP(如168.1.1),输入用户名和密码登录(默认信息可查看路由器底部标签,或咨询网络管理员)。
找到“端口转发”或“虚拟服务器”菜单
不同路由器名称略有差异,常见路径:
- 旧版路由器:
转发规则→虚拟服务器 - 新版路由器:
高级设置→端口转发或NAT转发
添加端口转发规则
以SSH服务(22端口)为例,填写以下信息:
- 服务名称:自定义(如
SSH-Server) - 外部端口:外网访问的端口(若路由器公网IP为
45.67.89,外部端口可填22,或自定义非系统端口如2222,避免与常见服务冲突) - 内部IP地址:CentOS7服务器的内网IP(如
168.1.100,务必填写正确) - 内部端口:服务器实际监听的端口(SSH为
22) - 协议:
TCP(SSH为TCP,若服务需UDP则选UDP,或TCP/UDP) - 状态:
启用
若需转发多个服务(如Web+SSH),需分别添加规则(例如Web服务:外部端口80→内部IP168.1.100→内部端口80)。
保存并重启路由器
保存配置后,部分路由器需重启端口转发功能或整机重启,使规则生效。
步骤3:验证外网访问与动态DNS(可选)
初步验证
- 在外网网络(如手机流量、另一条宽带)中,通过浏览器或SSH工具访问:
公网IP:外部端口(如45.67.89:22或45.67.89:80)。 - 若能正常登录SSH或访问Web页面,说明端口转发成功;若无法访问,检查:
路由器端口转发规则是否填写正确(内部

