Linux 下最简单快捷的端口转发软件 redir 简介

Linux 下的端口转发软件很多,像 ssh、iptables、socat 等等,但论简单易用,据我所知,还得算这个小小的 redir。它可以非常方便的把本机的TCP 端口转发给本机或其它机器的特定端口。如:redir :2022 :22,把本机的 2022 端口转发到本机的 22 端口。下面我以 Deepin Linux 宿主机和其上的3台 VirtualBox 虚拟机为例来演示一下。简介其中的 -I、-l、-n、-s、-m、-b参数的使用。 视频演示地址:https://www.bilibili.com/video/BV18L411F7e8?share_source=copy_web

Linux 下最简单快捷的端口转发软件 redir 简介


一、各主机及网络状态

各主机的 IP 如下:
A: 转发网关 Deepin Linux,10.0.2.15,10.0.0.1
B: littlebat@openeuler,10.0.0.2
C: test@i7,192.168.1.11
D: test@centos,192.168.1.12

各主机连通性如下:
A、B 在同一个局域网 10.0.0.0/24 内,可以互访;
C、D 在同一个局域网 192.168.1.0/24 内,可以互访;
A 通过另一接口 10.0.2.15 可以访问 C、D;
B 不能访问 C、D;
C、D 均不能访问 A、B。

主机 A 开放 ssh 服务器 22 端口,主机 D 开放 http 服务器 80 端口。示范把 A 的 2022 端口转发到 A 的 22 端口,和把 A 的 8088 转发到 D 的 80 端口。

二、端口转发示例
1、把 A 的 8088 转发到 D 的 80 端口
命令如下:

redir -I centoshttp -n -l debug -s :8088 192.168.1.12:80


这时,用 sudo netstat -utpln 查看,就可以看到 redir 生成了一个 8088 的监听端口。这样,在任何能够访问 A 的 8088 端口电脑上就能够访问到 D 的 80 端口了。
其中参数含义如下:
-n 表示前台执行,一般调试的时候用,不加默认就是后台运行
-I、-l、-s 这3个参数都跟日志有关,其中 -s 表示把日志写入系统 /var/log/syslog 中,-l 表示日志等级,-I 是在 syslog 信息中用于区别进程日志的标识。

2、把 A 的 2022 端口转发到 A 的 22 端口

redir :2022 :22


这样,在任何能够访问 A 的 2022 端口电脑上就能够访问到 A 的 22 端口了。
如果转发端口是1023 及以下,需要使用 root 权限,如 sudo redir :1023 :22
这是非常方便简单的。

3、不可靠的参数 -m 和 -b
从 man redir 的信息可以知道,-m 参数是用来限速的。单位是 bps ,即每秒的 bit 数,一个字节是 8bit,那么你一般的低档云服务器的 1M 带宽数值就该填 1000000,即 1 后面 6 个 0。但我试了一些数值,跟理论值差得不成样。所以,用这个参数限流,有点作用,但一点也不靠谱。

-b 的作用是绑定监听 IP,但我试了,没有作用,实现绑定监听 IP 的功能可以在被转发的端口的冒号前面写上绑定的 IP 就行。如不写IP 表示在 0.0.0.0 任意地址监听,我写上 IP 就表示在特定 IP 监听了。如系统中有两块网卡,一块 10.0.0.1,一块 10.0.2.15,上面的第二个例子我可以这样写: redir 10.0.2.15:2022 :22,那么,只有来自 10.0.2.0/24 网络的 ip 才可以通过 2022 端口访问到转发的 22 端口。而 10.0.0.0/24 网络则不行。

三、小结
redir 是一个专精于TCP 端口转发的开源小工具,在 Linux 的世界里,还有许多像 redir 这样专精于一个功能的小工具,我们可以利用这些小工具和小工具的配合,来完成特定的任务。向这些开源程序的作者致敬。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Linux系统中,有多种方法可以进行端口转发。其中一种方法是使用SSH进行端口转发。SSH提供了一个功能强大的端口转发功能,可以通过SSH连接来转发其他TCP端口的网络数据,并提供加密和解密服务。 一种常见的SSH端口转发方法是本地端口转发。您可以使用以下命令将本地端口转发到远程主机的特定端口: ``` ssh -fgN -L <本地端口>:<目标主机>:<目标端口> <远程主机> ``` 例如,要将本地端口2222转发到本地主机的22端口(即本地SSH服务),可以使用以下命令: ``` ssh -fgN -L 2222:localhost:22 localhost ``` 另一种常见的SSH端口转发方法是远程端口转发。您可以使用以下命令将远程端口转发到本地主机的特定端口: ``` ssh -fgN -R <远程端口>:<目标主机>:<目标端口> <远程主机> ``` 例如,要将远程端口2222转发到主机host1的22端口,可以使用以下命令: ``` ssh -fgN -R 2222:host1:22 localhost ``` 此外,还有一种动态转发的方法,可以创建一个动态的本地Socks代理服务器。您可以使用以下命令进行动态转发: ``` ssh -fgN -D <本地Socks代理端口> <用户名@远程主机> ``` 例如,要创建一个动态的本地Socks代理服务器,可以使用以下命令: ``` ssh -fgN -D 12345 root@host1 ``` 除了使用SSH进行端口转发外,还可以使用iptables命令进行端口转发。iptables是Linux系统中的一个强大的防火墙工具,同时也可以用于端口转发。 综上所述,Linux系统中有多种方法可以进行端口转发,包括使用SSH进行本地端口转发、远程端口转发和动态转发,以及使用iptables进行端口转发。具体使用哪种方法取决于您的需求和环境。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Linux 下最简单快捷的端口转发软件 redir 简介](https://blog.csdn.net/learndiary/article/details/122685551)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Linux端口转发的几种常用方法](https://blog.csdn.net/Jailman/article/details/125524313)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值