在服务器运维场景中,内网监听可以让服务仅对内网开放,提升安全性,多IP绑定则能充分利用服务器资源承载更多业务。宝塔面板作为常用的服务器管理工具,提供了可视化的操作入口,也能通过配置文件调整实现这两项需求。

前置准备
操作前需要先确认服务器的网络情况,首先查看服务器已有的IP地址,包括公网IP和内网IP。可以在宝塔面板的终端中执行以下命令查看:
ip addr # 执行后会列出所有网络接口的IP信息,记录下需要绑定的内网IP和额外公网IP
同时需要确认需要配置的服务,本文以常用的Nginx服务为例,其他服务如Apache、MySQL的配置逻辑类似,仅配置文件路径和参数略有不同。
配置内网监听
内网监听指的是服务仅监听服务器的内网IP地址,不对外网IP的对应端口进行响应,适合仅内部系统调用的服务。
步骤1:进入服务配置文件
登录宝塔面板,在左侧菜单栏找到软件商店,已安装的Nginx服务右侧点击设置,选择配置修改,进入Nginx主配置文件编辑页面。
步骤2:修改监听参数
找到Nginx配置文件中的server块,默认的监听配置为listen 80;,该配置会监听服务器所有IP的80端口。如果要配置内网监听,需要修改为指定内网IP监听,假设内网IP为192.168.1.100,修改方式如下:
# 原配置 listen 80; # 修改为内网IP监听,仅监听192.168.1.100的80端口 listen 192.168.1.100:80; # 如果是HTTPS服务,同步修改443端口监听 listen 192.168.1.100:443 ssl;
步骤3:验证配置并生效
修改完成后点击配置文件页面的保存按钮,然后点击服务选项卡中的重载配置,不要选择重启,重载可以在不中断现有连接的情况下应用新配置。之后在终端执行以下命令验证监听状态:
netstat -tuln | grep 80 # 输出中应包含192.168.1.100:80的监听记录,没有0.0.0.0:80则说明配置生效
配置多IP绑定
多IP绑定指的是让同一个服务同时监听服务器的多个IP地址,常用于一台服务器部署多个站点对应不同IP的场景。
步骤1:添加额外IP到服务器
如果服务器还没有添加需要绑定的额外IP,先在网络接口中添加。以CentOS系统为例,编辑网卡配置文件:
# 假设网卡为eth0,编辑对应配置文件 vi /etc/sysconfig/network-scripts/ifcfg-eth0 # 在文件末尾添加以下内容,IPADDR1为额外IP,NETMASK1为子网掩码 IPADDR1=192.168.1.101 NETMASK1=255.255.255.0 # 保存后重启网络服务 systemctl restart network
步骤2:Nginx配置多IP监听
回到Nginx的配置修改页面,在server块中添加多个listen指令,分别指定需要绑定的IP和端口:
server {
# 同时监听两个内网IP的80端口
listen 192.168.1.100:80;
listen 192.168.1.101:80;
server_name _;
root /www/wwwroot/default;
# 其他配置项保持不变
}如果需要不同的IP对应不同的站点,可以创建多个server块,每个块分别监听对应的IP即可:
# 第一个IP对应站点A
server {
listen 192.168.1.100:80;
server_name _;
root /www/wwwroot/site_a;
}
# 第二个IP对应站点B
server {
listen 192.168.1.101:80;
server_name _;
root /www/wwwroot/site_b;
}步骤3:重载配置并验证
保存配置后重载Nginx服务,再次执行netstat -tuln | grep 80命令,确认两个IP的80端口都处于监听状态,然后通过不同IP访问服务器,验证对应站点是否正常响应。
注意事项
- 修改配置文件前建议先备份原文件,避免配置错误后无法恢复。
- 如果服务器有防火墙,需要确认对应端口和IP的规则已经放行,否则即使服务监听成功也无法访问。
- MySQL等服务的多IP绑定配置和Nginx逻辑类似,找到对应配置文件的监听参数修改为指定IP即可,比如MySQL的
bind-address参数。 - 内网监听配置后,外网无法通过该端口访问服务,如果需要同时允许外网访问,不要指定具体IP,使用默认的
listen 80;配置即可。