Linux使用ufw/iptables实现端口映射
本文最后更新于565 天前,其中的信息可能已经过时,如有错误请发送邮件到mapleleaf2333@gmail.com

由于最近的项目需要,要实现端口的映射,通过公网IP访问服务器的内网提供的服务,因此写下该文章记录整个过程。在这个过程中,我尝试了如何配置iptables,结果发现服务器用的是ufw实现linux服务器的防火墙,又转而去配置ufw的转发。也因此文章中两种方法都会记录,但是一定记得在实现端口映射的时候,一定要注意自己的服务器用的是哪种方式!!!

允许服务器进行转发

首先是基础配置,这里两种方法使用的操作都是一样的。需要开启linux的数据转发功能。通过命令

vim /etc/sysctl.conf

在里面添加一行:

net.ipv4.ip_forward=1

保存退出后,使用以下命令使其生效:

sysctl -p

如果想要检查,还可以直接查看/proc/sys/net/ipv4/ip_forward的内容,如果是1表示设置成功生效。

使用iptables实现端口映射

通过修改iptables可以实现NAT映射功能,举例来说,如果要访问的实际服务为内网192.168.0.2的端口号为9000的服务,但是需要通过公网IP123.123.123.123,端口号19000访问,则可以通过以下命令实现端口映射:

iptables -t nat -A PREROUTING -d 123.123.123.123 -p tcp --dport 19000 -j DNAT --to-destination 192.168.0.2:9000

上述命令是将192.168.0.2:9000的服务映射到了公网的123.123.123.123:19000上。每个映射发都需要添加一条,在完成配置后,通过下述命令保存:

iptables-save -t nat

保存的结果可以通过以下命令查看:

iptables -t nat --list

如果有需要删除的列表信息,则用以下命令删除:(一定要慎重删除,无法恢复)

iptables -t nat -D PREROUTING 1    //序号从1 开始,后边以此+1.

由于我的服务器上使用的不是iptables的服务,所以没法验证下述操作的可行性,但是如果是使用了iptables服务的服务器,应该可以通过以下命令保存设置并重启服务:

service iptables save
service iptables restart

使用ufw实现端口映射

首先需要修改/etc/default/ufw,添加如下内容:

DEFAULT_FORWARD_POLICY="ACCEPT"

然后在/etc/ufw/before.rules中,在 *filter 之前,加入以下内容:

*nat
:PREROUTING - [0:0]
-A PREROUTING -i eth0 -p tcp --dport 公网映射端口 -j DNAT --to-destination  内网IP:内网服务端口
-A POSTROUTING -j MASQUERADE
COMMIT

需要注意上面的eth0是设备的网卡名称,需要用ifconfig来确定。dport后的值便是监听的公网端口。

添加完上述内容后,需要对每个监听的端口(公网映射的端口)使用以下命令:

sudo ufw allow from any to any port xxxxx

最后,使用以下命令重启服务

sudo ufw reload

sudo ufw enable //没启动则使用该命令,否则不用使用

至此,端口映射成功实现。

文章作者: 落尘Alko
链接: http://mapleleaf666.vip/?p=418
来源: 落尘Alko的小窝
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇