当前位置:首页 > 技术 > 正文内容

Linux系统中启用IP转发的配置方法

访客 技术 2026年8月24日 1

IP地址可分为公网地址与内网地址。公网地址由IANA(互联网号码分配机构)统一分配,用于公共网络通信。内网地址属于非注册地址,仅限组织内部使用。内网地址无法直接与外部网络交互,需通过路由转发(如NAT)或专用协议(如PPP)实现通信。

Linux系统出于安全策略,默认禁用数据包转发功能。该功能指当主机配置多网卡时,系统根据数据包目标地址将流量从一个网卡转发至另一个网卡,此机制常用于路由器设备。

1、检查IP转发状态可通过以下两种方式验证:

使用sysctl命令:

sysctl net.ipv4.ip_forward

查看系统文件:

cat /proc/sys/net/ipv4/ip_forward

返回值为0表示未启用,1表示已启用。

2、临时启用IP转发执行以下任一命令即可立即生效:

sysctl -w net.ipv4.ip_forward=1

echo 1 > /proc/sys/net/ipv4/ip_forward

此方法重启后失效。

永久生效配置: 编辑/etc/sysctl.conf文件,添加:

net.ipv4.ip_forward = 1

保存后执行:

sysctl -p /etc/sysctl.conf

Red Hat系系统可重启网络服务:

service network restart

Debian/Ubuntu系系统执行:

/etc/init.d/procps restart

3、iptables规则配置IP转发需配合防火墙规则使用。iptables包含三个核心表:

  • Filter表:处理进入主机的数据包,包含INPUT/OUTPUT/FORWARD链
  • NAT表:用于地址转换,包含PREROUTING/POSTROUTING/OUTPUT链
  • Mangle表:用于特殊数据包修改

转发规则示例允许特定接口的数据包转发:

iptables -A FORWARD -i enp0s3 -j ACCEPT
iptables -A FORWARD -o enp0s3 -j ACCEPT

NAT地址伪装配置:将内网IP替换为公网IP:

iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE

目标地址转换(DNAT):将外部请求转发至内网服务器:

iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 172.31.0.23:80

需确保FORWARD链允许相关流量:

iptables -A FORWARD -i ens33 -p tcp --dport 80 -d 172.31.0.23 -j ACCEPT

4、地址重定向示例将特定目标IP的流量重定向至其他地址:

内网到公网映射:

iptables -t nat -A OUTPUT -d 121.8.210.236 -j DNAT --to-destination 192.168.191.236

反向映射:

iptables -t nat -A OUTPUT -d 192.168.191.236 -j DNAT --to-destination 121.8.210.236

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。