iptables配置tcp端口转发

简介: iptables配置tcp端口转发
# example:
#iptables -t nat -A PREROUTING -p tcp --dport 1111 -j DNAT --to-destination 192.168.1.10:8022
#iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 8022 -j MASQUERADE

tcp_port_forward()
{
PROTOCOL=$1 
SERVERPORT=$2
DHOST=$3 
DPORT=$4
echo "$1, $2, $3, $4"
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING  -p $PROTOCOL --dport $SERVERPORT -j DNAT --to-destination $DHOST:$DPORT
iptables -t nat -A POSTROUTING -d $DHOST -p $PROTOCOL --dport $DPORT -j MASQUERADE

echo "redirect_port end."
}
clean_tcp_port_forward()
{
No=$1 

iptables -t nat  -D POSTROUTING $No
iptables -t nat  -D PREROUTING $No
echo "clean  no $No."

}
usage()
{
echo "Usage: $0 PROTOCOL/-d SERVER-PORTD/no HOST DPORT "
echo "example1: $0 tcp 443 192.168.1.123 8043"
echo " Visit this host on port 8043 equal vist 192.168.1.20:443"
echo "example2:"
echo " $0 tcp -d 1 "
echo " Clean previous rules"
echo "Notes: please make sure net.ipv4.ip_forward=1 in /etc/sysctl.conf and run \"sysctl -p\" to apply changes"
}

if [ $# -ne 4 ]; then 
if [ $# -ne 2 ]; then
  usage 
  exit 
fi 
fi 

if [ "$1" == "-d" ]; then
  clean_tcp_port_forward$2;
else
  sysctl -w net.ipv4.ip_forward=1
  tcp_port_forward$1 $2 $3 $4;
fi


测试:

/usr/sbin/add_forward tcp 8099 121.71.127.17 8201


即可实现把8099端口的tcp/http数据转发到121.71.127.17 8201上面去了

目录
打赏
0
1
1
0
47
分享
相关文章
阿里云国际站:阿里云服务器端口配置
悟空云@CloudWuKong阿里云是全球领先的云计算服务提供商,为用户提供弹性计算、数据库、存储、网络安全等一系列云计算服务。在使用阿里云服务器时,合理配置端口非常重要,可以提高服务器安全性和稳定性。
【Azure APIM】APIM服务配置网络之后出现3443端口不通,Management Endpoint不健康状态
如果没有关联的网络安全组,则阻止所有网络流量通过子网和网络接口。
101 30
检测指定TCP端口开放状态免费API接口教程
此API用于检测指定TCP端口是否开放,支持POST/GET请求。需提供用户ID、KEY、目标主机,可选指定端口(默认80)和地区(默认国内)。返回状态码、信息提示、检测主机、端口及状态(开放或关闭)。示例中ID和KEY为公共测试用,建议使用个人ID和KEY以享受更高调用频率。
108 14
检测指定TCP端口开放状态免费API接口教程
该API用于检测目标主机指定TCP端口是否开放,适用于检测连通状态等场景。支持指定大陆、美国、香港等检测节点。请求地址为 `https://cn.apihz.cn/api/wangzhan/port.php`,支持POST和GET请求方式。请求参数包括 `id`、`key`、`type`、`host` 和 `port`。返回参数包含检测结果和状态码。示例请求:`https://cn.apihz.cn/api/wangzhan/port.php?id=88888888&key=88888888&type=1&host=49.234.56.78&port=80`。
干货 | USG配置端口映射图解&映射不通的排查
干货 | USG配置端口映射图解&映射不通的排查
303 9
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
电脑中 TCP/UDP 端口是否开放的测试:令人意想不到的神奇策略等你发现!
【8月更文挑战第19天】在网络管理和维护中,常需确认TCP/UDP端口是否开放以确保服务运行顺畅。端口如同计算机对外通信的“门”,TCP提供可靠连接,UDP则快速但无连接。测试端口是否开放的方法多样:可用`telnet`测试TCP端口,如`telnet localhost 80`;UDP测试较复杂,可用`nc`工具,如`nc -u -z localhost 53`。此外,也有在线工具可供选择,但需确保其安全性。
1125 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等