新闻详情

新闻详情

首页 / 资讯中心 / 详情

linux 端口转发

发布时间:2026/9/19 1:19:19来源:尧图网络
linux 端口转发
一 从一台机到另一台机端口转发启用网卡转发功能#echo 1 /proc/sys/net/ipv4/ip_forward举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口a.同一端口转发(192.168.0.132上开通1521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT)iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADEb.不同端口转发(192.168.0.132上开通21521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT)iptables -t nat -A PREROUTING -p tcp -m tcp --dport21521-j DNAT --to-destination192.168.0.211:1521iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.0.132以上两条等价配置(更简单[指定网卡]):iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521iptables -t nat -A POSTROUTING -j MASQUERADE保存iptables#service iptables save#service iptables restart二 用iptables做本机端口转发代码如下iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080估计适当增加其它的参数也可以做不同IP的端口转发。如果需要本机也可以访问则需要配置OUTPUT链(********特别注意:本机访问外网的端口会转发到本地,导致访不到外网,如访问yown.com,实际上是访问到本地,建议不做80端口的转发或者指定目的 -d localhost)iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080原因外网访问需要经过PREROUTING链但是localhost不经过该链因此需要用OUTPUT。#######################################################################################概述公司有一些核心MySQL服务器位于核心机房的内网段作为运维人员经常需要去连接这些服务器因无法直接通过外网访问给管理造成了不便。思路虽然解决此问题的方法及思路有很多但当下想使用IPTABLES的端口重定向功能解决此问题比较简单易用而且扩展性也比较好依次类推可以运用到其他的端口转发方面的应用。网络环境公网服务器 eth0:公网IP eth1:内网IP - 192.168.1.1mysql服务器eth1:内网IP - 192.168.1.2实现方法通过访问公网IP的63306端口来实现到内网MYSQL服务器的3306端口的访问在公网服务器上配置脚本iptables -t nat -A PREROUTING -p tcp --dport 63306 -j DNAT --to-destination 192.168.1.2:3306iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 3306 -j SNAT --to 192.168.1.1允许服务器的IP转发功能echo 1 /proc/sys/net/ipv4/ip_forward使用方法mysql -h 公网IP -p 63306 -uroot -p###############################################################################################由于业务需要服务器越来越多内网服务器无外网环境管理甚是不便所以折腾了一下外网到内网的端口转发以达到轻松管理的目的贴一下心得。S1:eth0 10.0.0.1eth1 x.x.x.xS2:eth0 10.0.0.2S1 8082端口转发到内网机器22端口iptables规则配置如下iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8082 -j DNAT --to-destination 10.0.0.2:22iptables -t nat -A POSTROUTING -d 10.0.0.2 -p tcp --dport 22 -j SNAT --to-source x.x.x.x说明iptables -t nat -A PREROUTING -d 对外公网ip -p tcp --dport 对外端口 -j DNAT --to 内部实际提供服务的ip:实际提供服务的端口iptables -t nat -A POSTROUTING -d 内部实际提供服务的ip-p tcp --dport 实际提供服务的端口 -j SNAT --to-source 运行iptables机器的内网ip#######################################################################################一、firewalld 守护进程firewall-cmd命令需要firewalld进程处于运行状态。我们可以使用systemctl status/start/stop/restart firewalld来控制这个守护进程。firewalld进程为防火墙提供服务。当我们修改了某些配置之后尤其是配置文件的修改firewall并不会立即生效。可以通过两种方式来激活最新配置systemctl restart firewalld和firewall-cmd --reload两种方式前一种是重启firewalld服务建议使用后一种“重载配置文件”。重载配置文件之后不会断掉正在连接的tcp会话而重启服务则会断开tcp会话。二、控制端口/服务可以通过两种方式控制端口的开放一种是指定端口号另一种是指定服务名。虽然开放http服务就是开放了80端口但是还是不能通过端口号来关闭也就是说通过指定服务名开放的就要通过指定服务名关闭通过指定端口号开放的就要通过指定端口号关闭。还有一个要注意的就是指定端口的时候一定要指定是什么协议tcp还是udp。知道这个之后以后就不用每次先关防火墙了可以让防火墙真正的生效。?firewall-cmd --add-servicemysql # 开放mysql端口firewall-cmd --remove-servicehttp # 阻止http端口firewall-cmd --list-services # 查看开放的服务firewall-cmd --add-port3306/tcp # 开放通过tcp访问3306firewall-cmd --remove-port80tcp # 阻止通过tcp访问3306firewall-cmd --add-port233/udp # 开放通过udp访问233firewall-cmd --list-ports # 查看开放的端口三、伪装IP防火墙可以实现伪装IP的功能下面的端口转发就会用到这个功能。?firewall-cmd --query-masquerade # 检查是否允许伪装IPfirewall-cmd --add-masquerade # 允许防火墙伪装IPfirewall-cmd --remove-masquerade# 禁止防火墙伪装IP四、端口转发端口转发可以将指定地址访问指定的端口时将流量转发至指定地址的指定端口。转发的目的如果不指定ip的话就默认为本机如果指定了ip却没指定端口则默认使用来源端口。如果配置好端口转发之后不能用可以检查下面两个问题比如我将80端口转发至8080端口首先检查本地的80端口和目标的8080端口是否开放监听了其次检查是否允许伪装IP没允许的话要开启伪装IP?# 将80端口的流量转发至8080firewall-cmd --add-forward-portport80:prototcp:toport8080# 将80端口的流量转发至192.168.0.1firewall-cmd --add-forward-portport80:prototcp:toaddr192.168.1.0.1# 将80端口的流量转发至192.168.0.1的8080端口firewall-cmd --add-forward-portport80:prototcp:toaddr192.168.0.1:toport8080当我们想把某个端口隐藏起来的时候就可以在防火墙上阻止那个端口访问然后再开一个不规则的端口之后配置防火墙的端口转发将流量转发过去。端口转发还可以做流量分发一个防火墙拖着好多台运行着不同服务的机器然后用防火墙将不同端口的流量转发至不同机器。总结以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作能带来一定的帮助如果有疑问大家可以留言交流谢谢大家对脚本之家的支持。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

使用 Sublime Merge 完成第一次开源贡献:first-contributions 实战指南 2026/9/19 1:55:25

使用 Sublime Merge 完成第一次开源贡献:first-contributions 实战指南

使用 Sublime Merge 完成第一次开源贡献:first-contributions 实战指南 【免费下载链接】first-contributions 🚀✨ Help beginners to contribute to open source projects 项目地址: https://gitcode.com/gh_mirrors/fi/first-contributions 本…

阅读更多 →
5分钟跑通MLAlgorithms:从安装、运行示例到Docker部署的完整快速开始指南 2026/9/19 1:55:25

5分钟跑通MLAlgorithms:从安装、运行示例到Docker部署的完整快速开始指南

5分钟跑通MLAlgorithms:从安装、运行示例到Docker部署的完整快速开始指南 【免费下载链接】MLAlgorithms Minimal and clean examples of machine learning algorithms implementations 项目地址: https://gitcode.com/gh_mirrors/ml/MLAlgorithms MLAlgorit…

阅读更多 →
ISO/IEC 10646 字符集与编码:UTF-8/16、规范化与 CJK 2026/9/19 1:55:25

ISO/IEC 10646 字符集与编码:UTF-8/16、规范化与 CJK

简介:该资源为ISO/IEC 10646:2020《信息技术——通用编码字符集(UCS)》第六版英文原版标准文档,面向从事字符编码、国际化软件、操作系统与文本处理的开发者及标准化研究人员,用于解决多语言文本表示、跨设备信息交换与…

阅读更多 →
ik_llama.cpp 的 Llama 4 支持落地:iRoPE 架构解析、MoE 专家调优与量化实战 2026/9/19 1:55:25

ik_llama.cpp 的 Llama 4 支持落地:iRoPE 架构解析、MoE 专家调优与量化实战

ik_llama.cpp 的 Llama 4 支持落地:iRoPE 架构解析、MoE 专家调优与量化实战 【免费下载链接】ik_llama.cpp llama.cpp fork with additional SOTA quants and improved performance 项目地址: https://gitcode.com/GitHub_Trending/ik/ik_llama.cpp 本文以仓…

阅读更多 →
代谢组学三大技术原理与数据处理全链路解析 2026/9/19 1:55:25

代谢组学三大技术原理与数据处理全链路解析

简介:本资源是一份面向生物信息学、系统生物学及医学研究者的专业参考资料,聚焦代谢组学核心分析技术与数据处理方法论。内容系统梳理NMR、FT-IR、质谱(MS)及其色谱联用技术的原理与适用场景,深入解析原始数据预处理&a…

阅读更多 →
PostgreSQL 安装教程:多平台部署、初始化配置与故障排查 2026/9/19 1:52:25

PostgreSQL 安装教程:多平台部署、初始化配置与故障排查

PostgreSQL 这个东西,第一次装的人多半会觉得"不就是个数据库吗",然后被端口冲突、peer 认证、listen_addresses 这几件事连着教育两三个小时。我前后在 Windows 笔记本、Ubuntu 服务器、容器环境、还有几台国产化桌面系统上装过不下二十次 Po…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞