配置iptables、ufw端口转发

本地网络 >> 中转IP:183.60.100.8 >> 目标IP:103.79.78.76

温馨提示

如果是远程操作的话,请做好定时防火墙失效,防止自己连接不上。

每10分钟关闭防火墙

1
2
$ crontab -e
#*/10 * * * * /data/shell/stop_ufw.sh

 

非常简单的代码

1
2
3
4
5
6
$ cat /data/shell/stop_ufw.sh 
#!/bin/bash
###Ubuntu
/usr/sbin/ufw disable
###Centos7
/usr/bin/systemctl stop iptables.service

 

环境说明

国外目标服务器IP: 103.79.78.76
国内中转服务器IP: 183.60.100.8

iptables 端口转发(CentOS)

注意:一来一去
在中转服务器操作

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

 

开启ipv4转发

1
2
echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p

同端口转发(tcp+udp)

本地网络连接的端口是10010

1
2
3
4
$ iptables -t nat -A PREROUTING -p tcp --dport 10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A PREROUTING -p udp --dport 10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A POSTROUTING -p tcp -d 103.79.78.76 --dport 10010 -j SNAT --to-source 183.60.100.8
$ iptables -t nat -A POSTROUTING -p udp -d 103.79.78.76 --dport 10010 -j SNAT --to-source 183.60.100.8

 

不同端口转发

本地网络连接的端口依旧是10010,而不是10086

1
2
$ iptables -t nat -A PREROUTING -p tcp  -m tcp --dport 10010 -j DNAT --to-destination 103.79.78.76:10086
$ iptables -t nat -A POSTROUTING -p tcp  -m tcp -d 103.79.78.76 --dport 10086 -j SNAT --to-source 183.60.100.8

 

多端口转发

本地网络连接的端口是10000-10010

1
2
$ iptables -t nat -A PREROUTING -p tcp  -m tcp --dport 10000:10010 -j DNAT --to-destination 103.79.78.76
$ iptables -t nat -A POSTROUTING -p tcp  -m tcp -d 103.79.78.76 --dport 10000:10010 -j SNAT --to-source 183.60.100.8

保存iptables配置

1
service iptables save

删除NAT规则

删除第一个规则

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

 


ufw端口转发(Ubuntu)

编辑 etc/default/ufw文件中更改参数DEFAULT_FORWARD_POLICY

1
default_forward_policy = "accept"

 

配置/etc/ufw/sysctl.conf 允许ipv4转发(默认情况下,参数被注释掉)。如果你想要ipv6取消注释。

1
2
3
net/ipv4/ip_forward=1
#net/ipv6/conf/default/forwarding=1
#net/ipv6/conf/all/forwarding=1

最后一步是添加NAT到/etc/ufw/before.rules的配置。将以下内容添加到过滤器规则(*filter)之前

1
2
3
4
5
6
7
8
9
10
11
# NAT Table rules #2017/10/11
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]

# Port Forwardings 
-A PREROUTING -p tcp --dport 10010 -j DNAT --to-destination 103.79.78.76
-A POSTROUTING -p tcp -d 103.79.78.76 --dport 10010 -j SNAT --to-source 183.60.100.8

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

注意*nat,以COMMIT结尾才会生效。*filter一个COMMIT,*nat一个COMMIT。不能总用一个COMMIT

现在通过重新启动ufw启用更改。

1
sudo ufw disable && sudo ufw enable

 


查看iptables生效状态

在中转服务器查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ iptables -t nat -L -v
Chain PREROUTING (policy ACCEPT 3531 packets, 06K bytes)
 pkts bytes target     prot opt in     out     source               destination         
12103  33K DNAT       tcp  --  any    any     anywhere             anywhere             tcp dpt:10010 to:103.79.78.76

Chain INPUT (policy ACCEPT 3372 packets, 97K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 970 packets, 52079 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 970 packets, 52079 bytes)
 pkts bytes target     prot opt in     out     source               destination         
12103  33K SNAT       tcp  --  any    any     anywhere             103.79.78.76         tcp dpt:10010 to:183.60.100.8

 

查看指定规则表状态
iptables -t nat -vnL POSTROUTING
iptables -t nat -vnL PREROUTING

查看连接状态

在目标服务器查看

1
2
3
4
5
6
7
8
9
$ lsof -i:10010
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python  3187 root    3u  IPv4  26485      0t0  TCP *:10010 (LISTEN)
python  3187 root    4u  IPv4  26486      0t0  UDP *:10010 
python  3187 root    8u  IPv4  93464      0t0  TCP 103.79.78.76:10010->183.60.100.8:60835 (ESTABLISHED)
python  3187 root   10u  IPv4  93645      0t0  TCP 103.79.78.76:10010->183.60.100.8:60866 (ESTABLISHED)
python  3187 root   14u  IPv4  83358      0t0  TCP 103.79.78.76:10010->183.60.100.8:58893 (ESTABLISHED)
python  3187 root   15u  IPv4  92698      0t0  TCP 103.79.78.76:10010->183.60.100.8:60495 (ESTABLISHED)
python  3187 root   17u  IPv4  83360      0t0  TCP 103.79.78.76:10010->183.60.100.8:58898 (ESTABLISHED)

 

https://help.ubuntu.com/lts/serverguide/firewall.html#ip-masquerading

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Ubuntu上进行端口转发,首先需要安装ufw工具。使用以下命令进行安装: sudo apt install ufw 安装完成后,可以使用以下命令启用ufw: sudo ufw enable 默认情况下,ufw会关闭所有访问。如果要进行端口转发,需要对端口进行一系列设置。首先,使用以下命令开启Linux内核转发功能: sudo ufw default deny 接下来,可以使用以下命令开启需要进行端口转发的端口。例如,要开启22端口,可以使用以下命令: sudo ufw allow 22 完成上述设置后,ufw将允许来自外部网络的连接到达指定的端口。 请注意,ufwiptables的一个前端工具,它可以简化iptables配置。因此,通过ufw进行端口转发实质上是在配置iptables规则。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ubuntu的端口转发(内网穿透)和端口开放](https://blog.csdn.net/qm5132/article/details/83039405)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [[Ubuntu][网络][教程]端口转发以及端口管理](https://blog.csdn.net/qq_38844263/article/details/129822733)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值