iptables 设置端口转发/映射
iptables 设置端口转发/映射
服务器A有两个网卡
内网ip:192.168.1.3
外网ip:10.138.108.103
本地回环:127.0.0.1
服务器B有网卡,8001提供服务
内网ip:192.168.1.1
目的
使用户通过外网10.138.108.103:8001访问内网服务器192.168.1.1:8001
如图2所示,端口转发走的是下发A路,利用nat表中prerouting做dnat,用postrouting做snat
包分析
时期 操作 源IP:PORT 目的IP:PORT
packet in 用户访问 1.2.3.4:5 10.138.108.103:8001
prerouting dnat 1.2.3.4:5 192.168.1.1:8001
routing decision 判断是否转发 1.2.3.4:5 192.168.1.1:8001
postrouting snat 10.138.108.103:X 192.168.1.1:8001
packet out 转发包 10.138.108.103:X 192.168.1.1:8001
开启内核ip转发
nano /etc/sysctl.conf
将下项注释去掉
# net.ipv4.ipv4_forward=1
1
使改动生效
sudo sysctl -p
脚本
#!/bin/bash
pro='tcp'
src_host1='192.168.1.3'
src_host2='10.138.108.103'
src_port=8001
Dst_Host='192.168.1.1'
Dst_Port=8001
# 清空规则
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
# Destination network address translate (dnat)
# 如图2所示
iptables -t nat -A PREROUTING -p $pro -d $src_host1 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A PREROUTING -p $pro -d $src_host2 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -A FORWARD -p $pro -d $Dst_Host --dport $Dst_Port -j ACCEPT
# 本地连接不经过prerouting,只经过output链,所以想要在服务器A通过本地ip访问服务器B需要在output 链增加dnat规则
iptables -t nat -A OUTPUT -p $pro -d $src_host1 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
iptables -t nat -A OUTPUT -p $pro -d $src_host2 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port
# source network address translate (snat)
iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host1
# 显示已有规则
iptables -t nat -L -n --line-number
---------------------
作者:light_jiang2016
来源:CSDN
原文:https://blog.csdn.net/light_jiang2016/article/details/79029661
版权声明:本文为博主原创文章,转载请附上博文链接!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」