使用 iptables 进行端口转发

端口转发用来中转国外的虚拟机例如远程桌面 效果非常明显,iptables不仅支持单端口,连端口段也可以转发,同时TCP/UDP均可

特别注明:本地服务器 IP 未必是公网 IP ,像阿里云就是内网 IP ,请用 ipconfig 确认下走流量的网卡 IP 是外网还是内网。

第一步:开启系统的转发功能

vi /etc/sysctl.conf

net.ipv4.ip_forward=0

修改成

net.ipv4.ip_forward=1

编辑后使用命令让配置马上生效

sysctl -p

第二步: iptables 的命令

iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

第三步:重启 iptables 使配置生效(仅适合Centos6,7默认没有安装iptables防火墙,Debian/Ubuntu 不需要输入这个命令)

service iptables save
service iptables restart

扩展需求
多端口转发修改方案: ( 将本地服务器的 50000~65535 转发至目标 IP 为 1.1.1.1 的 50000~65535 端口 )

iptables -t nat  -A PREROUTING -p tcp -m tcp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
iptables -t nat  -A PREROUTING -p udp -m udp --dport 50000:65535 -j DNAT --to-destination 1.1.1.1
iptables -t nat  -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]
iptables -t nat  -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000:65535 -j SNAT --to-source [本地服务器IP]

非同端口号修改方案:(使用本地服务器的 60000 端口来转发目标 IP 为 1.1.1.1 的 50000 端口)

iptables -t nat   -A PREROUTING -p tcp -m tcp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
iptables -t nat   -A PREROUTING -p udp -m udp --dport 60000 -j DNAT --to-destination 1.1.1.1:50000
iptables -t nat   -A POSTROUTING -d 1.1.1.1 -p tcp -m tcp --dport 50000 -j SNAT --to-source [本地服务器IP]
iptables -t nat   -A POSTROUTING -d 1.1.1.1 -p udp -m udp --dport 50000 -j SNAT --to-source [本地服务器IP]

查看 NAT 规则

iptables -t nat -vnL

删除 NAT 规则
通过上面的查看规则命令,查看规则后,确定你要删除的规则的顺序,下面的命令是删除第一个规则。

iptables -t nat -D POSTROUTING 1
iptables -t nat -D PREROUTING 1

保存 iptables 规则并开机自动配置(Debian / Ubuntu)

iptables-save > /etc/iptables-rules-ipv4

最后,我们需要编辑/etc/network/interfaces文件

vi /etc/network/interfaces

在最后加入下面一行

pre-up iptables-restore < /etc/iptables-rules-ipv4

参考:https://www.91yun.org/archives/3008

时间: 2024-11-03 19:02:45

使用 iptables 进行端口转发的相关文章

centos7 &amp;&amp; centos6.5部KVM使用NAT联网并为虚拟机配置firewalld &amp;&amp; iptables防火墙端口转发

centos7 && centos6.5 部KVM使用NAT联网并为虚拟机配置firewalld && iptables防火墙端口转发 一.准备工作: 1: 检查kvm是否支持a: grep '(vmx|svm)' /proc/cpuinfo vmx是intel cpu支持的svm是AMD cpu支持的如果flags: 里有vmx 或者svm就说明支持VT:如果没有任何的输出,说明你的cpu不支持,将无法使用KVM虚拟机. b: 确保BIOS里开启VT: Intel(R)

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:P

iptables实现端口转发

iptables实现端口转发 Linux下iptables不仅可以用来做防火墙还可以用来做端口转发 示例: 将本机的8080端口转发至其他主机,主机IP:192.168.1.12,目标主机IP和端口:192.168.1.13:8088,规则如下 iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.13:8088 iptables -t nat -A POSTROUT

使用iptables做端口转发

#!/bin/sh IPT="/sbin/iptables" /bin/echo "1" > /proc/sys/net/ipv4/ip_forward /sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe iptable_nat /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprob

CentOS系统中使用iptables设置端口转发

echo 1 > /proc/sys/net/ipv4/ip_forward 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0    这样允许iptalbes FORWARD. 修改完成后运行以下命令使参数生效:/sbin/sysctl -p 将本地接口IP 61.144.14.72 的3389端口 转发到 116.6.73.229的3389      (主要访问到61.144.14.72的3389端口,就会跳转到116.6.73

使用 iptables 进行端口转发(转)

端口转发用来中转国外的虚拟机例如远程桌面 效果非常明显,iptables不仅支持单端口,连端口段也可以转发,同时TCP/UDP均可 特别注明:本地服务器 IP 未必是公网 IP ,像阿里云就是内网 IP ,请用 ipconfig 确认下走流量的网卡 IP 是外网还是内网. 第一步:开启系统的转发功能 vi /etc/sysctl.conf 将 net.ipv4.ip_forward=0 修改成 net.ipv4.ip_forward=1 编辑后使用命令让配置马上生效 sysctl -p 第二步:

VMware搭建内网并通过iptables实现端口转发实现联网

整体流程图 配置Server1 新建两块网卡 一块网卡设置为桥接模式,另外一块设置为仅主机模式 查看两块网卡配置 [email protected]:~# ifconfig ens33 Link encap:Ethernet HWaddr 00:0c:29:42:81:1c inet addr:192.168.31.159 Bcast:192.168.31.255 Mask:255.255.255.0 inet6 addr: ffff::fff:29ff:fe42:811c/64 Scope:L

利用iptables做端口转发

#!/bin/bash #sh forward_port.sh add/del port #sh forward_port.sh add 80 if [ -z $1 ];then echo "参数1为空" elif [ -z $2 ];then echo "参数2为空" fi mode=$1 pro='tcp' #src_host='47.97.205.48' src_host='47.97.205.48' src_port=$2 Dst_Host='183.129

linux配置端口转发

一.使用rinted进行端口转发 将10.50.13.13 80请求转到10.50.13.11 80上 1.安装rinetd $ tar zxf rinetd.tar.gz $ cd rinetd $ make $ make install 2.编辑配置文件 $ vi /etc/rinetd.conf 添加如下内容 $ 0.0.0.0 80 10.50.13.11 80 #本机IP为10.50.13.13 3.启动rinetd服务 $ rinetd -c /etc/rinetd.conf 二.使