Linux中如何添加IP映射?

在Linux系统中,IP映射是一个常见需求,主要涉及静态IP地址配置、端口转发(NAT)以及本地域名解析映射,本文将详细介绍这三种常见IP映射的配置方法,包括操作步骤、命令示例及注意事项,帮助用户在不同场景下实现IP映射需求。

linux中如何添加ip映射

静态IP地址映射(网络接口配置)

静态IP映射是指为Linux服务器的网络接口(如eth0、ens33)分配固定的IP地址、子网掩码、网关和DNS服务器,确保服务器IP地址不会因DHCP租约到期而改变,这种映射方式适用于需要长期固定IP的服务器环境,如Web服务器、数据库服务器等。

基于配置文件的静态IP配置

不同Linux发行版的配置文件路径和格式略有差异,以下以CentOS/RHEL(使用NetworkManager)和Ubuntu/Debian(使用netplan)为例说明。

(1)CentOS/RHEL系统(NetworkManager)

  • 步骤1:查看网络接口名称
    执行命令ip addrnmcli connection show,获取当前活动的网络接口名称(如eth0、ens33)。

  • 步骤2:编辑网络配置文件
    进入/etc/sysconfig/network-scripts/目录,复制对应接口的配置文件(如ifcfg-eth0)并备份,然后编辑:

    cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak  
    vi /etc/sysconfig/network-scripts/ifcfg-eth0  

    配置文件内容示例如下:

    TYPE=Ethernet  
    BOOTPROTO=static  # 静态IP,禁用DHCP  
    NAME=eth0  
    DEVICE=eth0  
    ONBOOT=yes        # 开机启动网络  
    IPADDR=192.168.1.100  # 目标静态IP  
    NETMASK=255.255.255.0 # 子网掩码  
    GATEWAY=192.168.1.1   # 网关地址  
    DNS1=8.8.8.8          # DNS服务器  
    DNS2=114.114.114.114  
  • 步骤3:重启网络服务
    执行命令nmcli connection down eth0 && nmcli connection up eth0systemctl restart network,使配置生效。

(2)Ubuntu/Debian系统(netplan)

linux中如何添加ip映射

  • 步骤1:查看网络接口名称
    执行ip addr获取接口名称(如ens33)。

  • 步骤2:编辑netplan配置文件
    进入/etc/netplan/目录,找到配置文件(如01-netcfg.yaml),编辑内容:

    network:  
      version: 2  
      ethernets:  
        ens33:  
          dhcp4: no       # 禁用DHCP  
          addresses: [192.168.1.100/24]  # IP地址/子网掩码(24位掩码即255.255.255.0)  
          gateway4: 192.168.1.1          # 网关  
          nameservers:  
            addresses: [8.8.8.8, 114.114.114.114]  # DNS服务器  
  • 步骤3:应用配置
    执行netplan apply命令使配置生效,若提示错误可通过netplan --debug apply排查。

静态IP配置对比(表格)

发行版 配置文件路径 重启网络命令 关键参数说明
CentOS/RHEL /etc/sysconfig/network-scripts/ifcfg-网卡名 systemctl restart network BOOTPROTO=static, IPADDR, NETMASK, GATEWAY
Ubuntu/Debian /etc/netplan/xxx.yaml netplan apply dhcp4: no, addresses, gateway4, nameservers

端口映射(NAT转发)

端口映射是将网络数据包的目标端口或源地址进行转换,常用于内网服务器通过公网IP访问、端口转发等场景,Linux中主要通过iptables(传统防火墙)或firewalld(CentOS 7+)实现。

基于iptables的端口映射

iptables是Linux内核集成的防火墙工具,支持SNAT(源地址转换)和DNAT(目标地址转换)。

  • (1)DNAT(目标地址转换):将公网端口映射到内网服务器
    示例:将本机(公网IP 1.1.1.1)的80端口映射到内网服务器192.168.1.200的8080端口。

    # 开启内核转发功能  
    echo 1 > /proc/sys/net/ipv4/ip_forward  
    # 添加DNAT规则(PREROUTING链)  
    iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.200:8080  
    # 添加MASQUERADE规则(POSTROUTING链,使响应数据包能正确返回)  
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE  
  • (2)SNAT(源地址转换):内网通过公网IP访问外网
    示例:内网网段192.168.1.0/24通过本机公网IP1.1.1.1访问外网。

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.1.1.1  
  • (3)保存iptables规则
    CentOS系统:service iptables save
    Ubuntu系统:iptables-save > /etc/iptables/rules.v4

    linux中如何添加ip映射

基于firewalld的端口映射(CentOS 7+)

firewalld是CentOS 7及以上版本默认的防火墙工具,支持富规则(Rich Rules)实现端口映射。

  • 步骤1:启用防火墙和NAT

    systemctl start firewalld  
    firewall-cmd --permanent --add-masquerade  # 开启IP伪装(相当于MASQUERADE)  
    firewall-cmd --reload  
  • 步骤2:添加端口映射规则
    示例:将本机80端口映射到内网192.168.1.200的8080端口。

    firewall-cmd --permanent --add-rich-rule='rule family=ipv4 forward-port port=80 protocol=tcp to-port=8080 to-addr=192.168.1.200'  
    firewall-cmd --reload  

iptables命令参数说明(表格)

参数/链 作用说明 示例
-t nat 指定nat表,用于地址转换 iptables -t nat -A PREROUTING...
-A 添加规则到链的末尾 iptables -A INPUT...
-p tcp/udp 指定协议(tcp/udp) iptables -p tcp --dport 80
--dport 目标端口 --dport 80
--to-destination DNAT的目标IP和端口(DNAT专用) --to-destination 192.168.1.200:8080
MASQUERADE 动态源地址转换(适用于动态公网IP) -j MASQUERADE

本地域名解析映射(hosts文件)

hosts文件是本地域名与IP地址的映射表,优先级高于DNS服务器,适用于本地测试或特定域名的快速解析。

编辑hosts文件

hosts文件路径为/etc/hosts,格式为“IP地址 域名 [别名]”。

vi /etc/hosts  
0.0.1   localhost  
192.168.1.100  testserver  # 将testserver映射到192.168.1.100  
192.168.1.200  dbserver.local  # 带别名的映射  

生效与验证

  • 保存文件后立即生效(无需重启服务)。
  • 验证命令:ping testservernslookup testserver,若返回目标IP则配置成功。

注意事项

  • hosts文件仅对当前主机生效,局域网其他设备需修改各自的hosts文件。
  • 若需长期生效,避免在DNS服务器中配置相同域名,防止冲突。

相关问答FAQs

Q1:如何验证静态IP配置是否生效?
A:可通过以下方式验证:

  1. 执行ip addr show 网卡名,检查IP地址、子网掩码是否与配置一致;
  2. 执行ping 网关地址(如ping 192.168.1.1),验证网络连通性;
  3. 执行nslookup 域名ping 域名,检查DNS解析是否正常;
  4. 若无法上网,检查/etc/resolv.conf中的DNS配置是否正确,或使用systemctl status network(CentOS)查看网络服务状态。

Q2:修改hosts文件后无法解析域名,如何排查?
A:可按以下步骤排查:

  1. 检查hosts文件格式:确保每行格式为“IP 域名”,IP和域名之间用空格或Tab分隔,避免多余字符;
  2. 检查IP地址有效性:确保目标IP地址正确,且主机可达(可通过ping IP测试);
  3. 清除DNS缓存:执行sudo systemctl flush-dns(需systemd-resolved支持)或重启nscd服务(sudo systemctl restart nscd);
  4. 检查DNS优先级:若系统配置了DNS服务器,hosts文件的优先级更高,可尝试ping -f 域名强制使用hosts解析,或临时注释掉DNS配置测试。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/35911.html

(0)
酷番叔酷番叔
上一篇 2025年10月4日 19:27
下一篇 2025年10月4日 19:42

相关推荐

  • Linux挂载硬盘如何确保安全可靠?

    准备工作识别硬盘设备使用 lsblk 或 fdisk -l 命令查看所有存储设备:sudo fdisk -l输出示例: /dev/sdb: 1.8T, 1800000000000 bytes # 新硬盘通常显示为 /dev/sdb 或 /dev/nvme0n1p1检查文件系统类型若硬盘已格式化,用 blkid……

    2025年7月17日
    5600
  • Linux如何添加lm模块及实现配置?

    在Linux系统中,“加lm”通常涉及与LAN Manager(LM)哈希或LM认证相关的操作,这在特定场景下(如与旧版Windows系统兼容、Samba服务配置或安全审计)可能需要处理,LM哈希是微软早期Windows版本(如Windows 95/98/Me及NT 4.0之前)使用的密码存储算法,因其安全性低……

    2025年10月1日
    900
  • linux 如何进入sqlplus

    在Linux系统中进入SQLPlus是Oracle数据库管理和操作的常见需求,但具体操作需结合环境配置、用户权限及数据库状态等因素,以下是详细步骤和注意事项,帮助用户顺利进入SQLPlus环境,环境准备与基础检查在尝试进入SQLPlus前,需确保以下条件满足,否则可能导致连接失败或命令无法识别:Oracle数据……

    2025年9月29日
    1300
  • 如何查看Linux系统时间?常用命令与方法有哪些?

    在Linux系统中,查看系统时间有多种方式,涵盖命令行工具、系统文件及图形界面等,用户可根据需求选择合适的方法,以下从常用命令、底层文件及图形操作三方面详细介绍,并附上命令对比表格及常见问题解答,命令行工具查看系统时间命令行是Linux系统中最常用的操作方式,通过简单指令即可快速获取时间信息,以下是几种核心命令……

    2025年8月29日
    3300
  • Linux如何访问光盘内容?

    检查光盘是否被识别插入光盘:将光盘放入光驱(物理服务器/虚拟机均可),查看设备节点:ls /dev/sr*输出示例:/dev/sr0(常见设备名,可能为/dev/cdrom),若未显示设备,尝试重启光驱服务:sudo systemctl restart udisks2挂载光盘到目录创建挂载点(目录):sudo……

    2025年7月9日
    5700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信