如何在CentOS系统中查看与配置公网IP地址?
理解公网IP的基本概念
在服务器管理中,公网IP是一个关键要素,它相当于服务器在互联网上的“门牌号”,允许外部设备通过这一地址访问本地资源,对于使用CentOS系统的服务器来说,正确配置和管理公网IP是保障服务可访问性的基础。
如何查看CentOS服务器的公网IP
若需确认当前服务器的公网IP,可通过以下命令快速获取:
curl ifconfig.me
或使用国内服务商提供的接口:
curl cip.cc
执行后,终端会返回公网IP、地理位置及网络运营商信息,需注意,若服务器部署在NAT(网络地址转换)环境中,可能需通过控制台或云服务商后台查看真实公网IP。
配置静态公网IP的步骤
部分场景下(如自建机房或物理服务器),需手动为CentOS配置静态公网IP,操作流程如下:
1、定位网卡配置文件
CentOS 7及以上版本默认使用NetworkManager,配置文件路径为:
/etc/sysconfig/network-scripts/ifcfg-eth0
(注:网卡名称可能因环境不同而存在差异,如ens192、enp0s3等)
2、修改网络配置
使用文本编辑器打开文件,调整以下参数:
BOOTPROTO=static ONBOOT=yes IPADDR=xxx.xxx.xxx.xxx # 填写实际公网IP NETMASK=255.255.255.0 GATEWAY=xxx.xxx.xxx.1 # 网关地址通常为运营商提供 DNS1=8.8.8.8 DNS2=114.114.114.114
3、重启网络服务
systemctl restart network
验证配置是否生效:
ip addr show eth0
动态公网IP的管理策略
对于家庭宽带或动态分配公网IP的环境,IP地址可能因重启或运营商策略而变动,此时可通过DDNS(动态域名解析)服务实现域名与IP的绑定,推荐工具:
Cloudflare API:适用于已有域名的用户,支持自动化脚本更新IP。
花生壳(Oray):提供免费动态域名解析服务,适合个人用户。
配置示例(使用Cloudflare API):
#!/bin/bash NEW_IP=$(curl -s http://ipecho.net/plain) curl -X PUT "https://api.cloudflare.com/client/v4/zones/区域ID/dns_records/记录ID" \ -H "Authorization: Bearer API密钥" \ -H "Content-Type: application/json" \ --data '{"type":"A","name":"域名","content":"'$NEW_IP'","ttl":120}'
将此脚本加入定时任务(crontab),每小时自动更新IP。
公网IP的安全防护建议
暴露公网IP可能带来安全风险,需采取以下措施加固服务器:
1、启用防火墙
使用firewalld或iptables限制非必要端口访问,仅开放80(HTTP)、443(HTTPS)及SSH端口:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --permanent --add-port=443/tcp firewall-cmd --permanent --add-port=22/tcp firewall-cmd --reload
2、修改SSH默认端口
降低暴力破解风险:
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config systemctl restart sshd
3、部署Fail2ban
自动屏蔽多次登录失败的IP:
yum install epel-release -y yum install fail2ban -y systemctl enable --now fail2ban
4、定期更新系统
yum update -y && yum upgrade -y
公网IP与内网穿透的替代方案
若无法直接获取公网IP(如企业内网环境),可通过内网穿透工具实现外部访问,常用方案包括:
Ngrok:开源工具,支持TCP/UDP隧道。
frp:高性能反向代理,配置灵活。
ZeroTier:组建虚拟局域网,绕过复杂网络限制。
以frp为例,服务端配置(公网服务器):
[common] bind_port = 7000
客户端配置(内网CentOS服务器):
[common] server_addr = 公网服务器IP server_port = 7000 [web] type = tcp local_ip = 127.0.0.1 local_port = 80 remote_port = 8080
启动后,外部用户可通过公网IP:8080访问内网80端口服务。
验证公网IP的连通性
完成配置后,需测试公网IP是否生效:
1、本地检测
ping -c 4 公网IP
若返回正常延迟,说明IP可达。
2、外部端口扫描
使用在线工具(如tool.chinaz.com/port)检查端口开放状态。
3、路由追踪
分析网络路径是否存在异常节点:
traceroute 公网IP
个人观点
公网IP的配置与管理是服务器运维的基础技能,但细节决定成败,尤其在安全防护层面,过度依赖默认设置可能导致严重漏洞,实际运维中,建议结合监控工具(如Prometheus+Alertmanager)实时跟踪网络状态,并定期审计防火墙规则,技术迭代迅速,保持对新工具(如IPv6过渡方案、WireGuard VPN)的关注,才能更高效地应对复杂场景。
推荐阅读
-
Java中的JavaCore/HeapDump文件及其分析方法
产生时间Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下。有...
-
每个Java开发者都应该知道的5个JDK工具
JDK是Java语言的软件开发工具包,没有它就无法编译Java程序。目前,有许许多多的JDK工具呈现在大家面前,但最常用的莫过于j...
-
Java字符串的substring真的会引起内存泄露么?
在Java中开发,String是我们开发程序可以说必须要使用的类型,String有一个substring方法用来截取字...
-
Java I/O底层是如何工作的?
本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解JavaI/O操作是在机器层面如何进行映射,以及应用运行时硬...
-
5个最优秀的Java和C#代码转换工具
本文由码农网 –小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!毋庸置疑,Java是一门最受欢迎...
-
CentOS 6.5 搭建 Java 开发环境详解
一、安装jdk1.查看Linux自带的JDK是否已安装java–version如果出现openjdk,最好还是...
-
Java阻塞队列线程集控制的实现
队列以一种先进先出的方式管理数据。如果你试图向一个已经满了的阻塞队列中添加一个元素,或是从一个空的阻塞队列中移除一个元...
-
10个使用Java最广泛的现实领域
本文由码农网 –小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!如果你是一个初学者,刚刚开始学习...
-
Java命名:可怕的DefaultAbstractHelperImpl
JOOQ的卢卡斯·艾德研究了在Spring和Java命名策略中富有创造性的类名所带来的价值。这篇文章最早是发表在j...
-
Java内存的原型及工作原理深度剖析
本文主要通过分析Java内存分配的栈、堆以以及常量池详细的讲解了其的工作原理。一、java虚拟机内存原型寄存器:我...