前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux本机端口转发配置

Linux本机端口转发配置

作者头像
Cloudox
发布2021-11-23 14:00:26
4K0
发布2021-11-23 14:00:26
举报
文章被收录于专栏:月亮与二进制月亮与二进制

所谓端口转发就是,本来你的进程是提供端口A的TCP服务,但是由于一些特殊原因(比如该端口禁止外网访问,或者金志明某些用户访问),如果还是想要访问到该端口A的服务,可以配置一下端口转发,使得到端口B的请求被自动转发到端口A,而端口B是可以访问的,从而也就实现了对端口A服务的访问。

举个例子,现在我有个服务运行在8100端口,这个端口不允许外网访问,也不允许系统的其他用户访问,但是有访问需求怎么办,现在找一个能够被访问的端口,比如8000。然后开始配置。

首先,必须开启Linux的端口转发功能

我们进入配置文件:

代码语言:javascript
复制
$ vim /etc/sysctl.conf
/etc/sysctl.conf
/etc/sysctl.conf

找到 net.ipv4.ip_forward = 0 这一行,如图改成 net.ipv4.ip_forward = 1 。如果前面有 # 号注释,记得去掉。

修改后保存退出,然后输入命令:

代码语言:javascript
复制
$ sysctl -p

来使配置修改生效。

现在就可以修改iptables,来做端口转发,也就是nat映射了。

本机端口转发

在修改之前,如果你是centOS 7系统,那么需要先安装一个东西来使接下来的命令可以使用:

代码语言:javascript
复制
$ yum -y install iptables-services

然后开始修改配置:

代码语言:javascript
复制
$ iptables -t nat -A PREROUTING -p tcp --dport 8000 -j REDIRECT --to-ports 8100
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
$ service iptables restart
Redirecting to /bin/systemctl restart iptables.service

三条命令的目的很明显:配置端口转发(使对8000的访问转到8100)、保存修改、重启iptables。如果配置成功,将会看到上面这样的输出。

到此,就可以在外网访问8000端口来获取8100端口的服务了,很简单吧。

但是,这时候如果你在机器上直接去访问8000端口,是不会得到8100端口的服务的,为什么?因为你还需要做一次配置:

代码语言:javascript
复制
$ iptables -t nat -A OUTPUT -d localhost -p tcp --dport 8000 -j REDIRECT --to-ports 8100
$ service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
$ service iptables restart
Redirecting to /bin/systemctl restart iptables.service

和上面的配置相比,只有第一条不同,不同点在于从PREROUTING 变成了OUTPUT 。

使用命令:

代码语言:javascript
复制
$ iptables -t nat --list

可以查看你添加的配置信息:

可以看到,这个列表分为四块,分别为PREROUTING、INPUT、OUTPUT、POSTROUTING,在PREROUTING和OUTPUT下可以看到我们刚才配置的端口转发,其他两块没有内容。

如果想要删除自己配置的转发规则,也很简单:

代码语言:javascript
复制
$ iptables -t nat -D PREROUTING 1    //序号从1开始,后边依次+1
$ iptables -t nat -D OUTPUT 1

要删除哪一块的规则,就写哪一块,序号从1开始。

以上,就是Linux的本机端口转发配置方法了,还有一种转发是跨IP端口转发,本文暂不介绍。

参考资料: https://blog.csdn.net/zpf336/article/details/73163419 https://blog.csdn.net/xin_yu_xin/article/details/46416101 https://blog.csdn.net/m0_37886429/article/details/70171571 https://blog.csdn.net/zzhongcy/article/details/42738285

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/2/21 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 首先,必须开启Linux的端口转发功能
  • 本机端口转发
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档