美文网首页IT@程序员猿媛
Linux本机端口转发配置

Linux本机端口转发配置

作者: Cloudox_ | 来源:发表于2019-02-21 16:42 被阅读22次

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

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

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

我们进入配置文件:

$ vim /etc/sysctl.conf
/etc/sysctl.conf

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

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

$ sysctl -p

来使配置修改生效。

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

本机端口转发

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

$ yum -y install iptables-services

然后开始修改配置:

$ 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端口的服务的,为什么?因为你还需要做一次配置:

$ 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 。

使用命令:

$ iptables -t nat --list

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

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

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

$ 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

相关文章

  • linux下iptables端口转发设置

    linux下利用iptables规则配置端口转发 1、需求 将所有80端口的访问流量转发到本机8080端口。 2、...

  • Linux本机端口转发配置

    所谓端口转发就是,本来你的进程是提供端口A的TCP服务,但是由于一些特殊原因(比如该端口禁止外网访问,或者金志明某...

  • TCP转发

    下载 配置安装 配置文件 上面本机listen端口的数据转发到,proxy_pass上去。

  • iptables实现端口转发

    Linux下iptables不仅可以用来做防火墙还可以用来做端口转发 示例: 将本机的8080端口转发至其他主机,...

  • rinetd 端口转发教程

    Linux 上有 iptables 具有端口转发的功能,但配置有点复杂,有另外一种TCP转发工具 rinetd,它...

  • 80端口被占用

    可以通过pfctl做网络层的端口转发, 让连接到本机80端口的请求, 都转发到8080端口。 sudo vim /...

  • 虚拟机的NAT模式下如何访问虚拟机服务器

    端口转发 顾名思义,将端口转发到其它端口。那我们可以将本机IP:127.0.0.1转发到服务器的IP:10.0.2...

  • 内网端口的转发

    端口的转发 一:linux系统下: 1、本地端口转发本地端口 iptables -t nat -A PREROUT...

  • [iptables] 端口转发

    iptables 端口转发配置规则 请求在防火墙中的路由过程 配置外网访问端口转发iptables -t nat ...

  • Ubuntu端口转发

    Ubuntu端口转发 安装·rinetd 配置rinetd 启动端口转发进程 然后开放27018端口的防火墙服务即...

网友评论

    本文标题:Linux本机端口转发配置

    本文链接:https://www.haomeiwen.com/subject/tbqdyqtx.html