#yyds干货盘点#linux下端口转发的2中方式

使用场景:非80端口http服务,无法nginx做反向代理,在只有一个外网ip的情况下,需要将内网其他服务端口转发到公网对外提供服务

>iptables端口转发

网络拓扑

服务器A网卡信息

外网IP:117.34.73.249

内网IP:10.1.1.8

服务器内网登录账户密码修改B网卡信息,服务器怎么搭建8080提供服务

内网IP:10.1.1.10

目的

使用户通过外网117.34.73.249:8080访问内网服务器10.1.1.10:8080

思路


                                            #yyds干货盘点#linux下端口转发的2中方式

如图2所示,端口转发走的是下发A路,利用nat表中prerouting做dnat,用postrouting做snat

包分析

时期

操作

源IP:端口

目的IP:端口

packe内网和外网的区别t in

用户访问

8.8.8.8:88

117.3地暖安装步骤4.73.249:8080

prerouting

dnat

8.8.8.8:88

10.1.1.10:8080

routing decision

判断是否转发

8.8.8.8:88

10.1.1.10:8080

post服务器是什么routing

sn外网服务器地址ip免费at

11ug安装步骤7.3内网怎么连接4.73.249:X

10.1.1.10:8080

pa服务器是什么cket out

转发包

117.34.73.249:X

10.1.1.10:8080

开启内核转发

echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -p

运行脚本

#!/bin/bash
pro='tcp'

src_host1='10.1.1.8'
src_host2='117.34.73.249'
src_port=8080

Dst_Host='10.1.1.10'
Dst_Port=8080

# 清空规则
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

>xinetd端口转发

xinet服务器怎么搭建安装步骤

yum install gcc
wget https://boutell.com/rinetd/http/rinetd.tar.gz
tar -xvf rinetd.tar.gz
cd rinetd
sed -i 's/65536/65535/g' rinetd.c
mkdir /usr/man/
make && make install

以上6条命令就是所有的安装步骤,至此就已经安装完毕.安装时会有个warning的提示,不影响使用,不用理会.编辑端口转发配置文件:

vi /etc/rinetd.conf
117.34.73.249 8080 10.1.1.10 8080

//117.34.73.249 自己监听

//10.1.1.10 转发源

配置文件格式很简单:[Source Address] [Source Port] [Destination Address] [Destination Port]简单翻译一下:源IP 源端口 目linux必学的60个命令标IP 目标端口内网是什么意思每行一条转发规则.启动和外网吃播关闭转发程序:

启动:rinetd -c /etc/rinetd.conf
关闭:killall rinetd

检验端口转发程序是否正确运行:

netstat -tanulp|grep rinetd

>端口监听测试tcping

tcping ip地址 检测端口

常用参数:

-t 不停的发送数据包直到 按ctrl+c 停止


                                            #yyds干货盘点#linux下端口转发的2中方式

-h 以http 的模式工作,可以测试主机是否提供http服务


                                            #yyds干货盘点#linux下端口转发的2中方式

tcping.exe文件复制到C:\Windows\System32目录


                                            #yyds干货盘点#linux下端口转发的2中方式

下载地址:​​https://elifulkers服务器的作用on.com/projects/tcping.php​​