教程

FinalShell 端口转发怎么玩?我用它连接内网服务贼方便!

2026-07-20 · FinalShell

FinalShell 端口转发怎么玩?我用它连接内网服务贼方便! 配图

嗨,大家好!作为一名经常需要远程连接服务器,尤其是访问一些公司内网服务的兼职作者,我深知那种网络受限的痛苦。有时候想连个开发环境的数据库,或者管理后台,但又不能直接暴露到公网,或者只是个临时的测试服务。这时候,端口转发就成了我的救星,而 FinalShell 就是我用得最顺手的工具之一。

简单来说,端口转发就像在你的电脑和远程服务器之间挖了一条“秘密隧道”。通过这条隧道,你可以把你电脑上的某个端口(比如本地 3306 端口)的数据,安全地转发到远程服务器上的另一个端口(比如服务器上的 3306 端口),反之亦然。这样,即使远程服务没有直接暴露在外网,你也能通过连接本地端口来访问它。对于我这种需要在本地调试代码,但又依赖远程内网服务的人来说,简直是生产力神器!

FinalShell 端口转发设置实操

接下来,我就手把手教你如何在 FinalShell 4.5.8 这个版本里,设置并使用端口转发。整个过程其实非常简单,比你想象的要容易得多。

第一步:选择会话并进入端口转发设置

首先,打开你的 FinalShell 客户端。在左侧的“会话”树形列表里,找到你要连接的服务器会话。右键点击这个会话名称,然后选择“属性”选项。在弹出的会话属性窗口中,切换到顶部的“转发”标签页。这里就是我们设置端口转发的地方。

配图说明

第二步:添加新的转发规则

进入“转发”标签页后,你会看到一个空白的列表(如果你是第一次设置的话)。点击下方的“新建”按钮,会弹出一个“添加转发规则”的小窗口。FinalShell 支持三种主要的转发方式:本地转发、远程转发和动态转发。我们今天主要讲本地转发,因为它最常用。如果你对其他转发方式感兴趣,可以看看这篇关于 FinalShell SSH Key 配置 的文章,里面也提到了一些高级用法。

第三步:配置本地转发规则

在“添加转发规则”窗口中,选择“本地端口转发”。

  • 监听地址: 一般我们默认留空或者填 127.0.0.1,意思是只允许本机访问这个转发端口。如果你想让局域网内其他设备也能通过你的电脑访问,可以填写 0.0.0.0,但要注意安全风险。
  • 监听端口: 这是你本地电脑上要监听的端口。比如,你想通过本地 3307 端口访问服务器的 3306 数据库,这里就填 3307。注意不要和本地已有的服务端口冲突。
  • 目标主机: 填写远程服务器(也就是你的 FinalShell 连接目标服务器)能够访问到的内网主机的 IP 地址或域名。比如,你的数据库服务器 IP 是 192.168.1.100。
  • 目标端口: 填写目标主机上服务的端口。比如,数据库的端口是 3306。

配置好后,点击“确定”保存规则。

第四步:保存会话并连接测试

添加完转发规则后,回到会话属性窗口,确保点击“保存”按钮。然后,重新连接你的 FinalShell 会话。一旦会话成功连接,你设置的端口转发就会自动生效。

这时候,你就可以在本地用客户端(比如 Navicat 连接 MySQL、Redis Desktop Manager 连接 Redis)连接 127.0.0.1:3307 了,就像连接本地服务一样。是不是很简单?我就是用这种方法,把远程开发环境的 Redis、MongoDB 都转发到了本地,开发效率瞬间提高了不少。我还尝试过用 FinalShell 进行 SFTP 文件传输,也很方便,大家可以看看。

常见问题

在使用 FinalShell 端口转发时,我遇到过一些坑,也总结了一些常见问题及解决办法,希望能帮到你。

1. 端口转发连接失败,提示 Connection refused 或 Timeout?

  • 检查目标主机和端口: 确保你在转发规则中填写的“目标主机”和“目标端口”是正确的,并且远程服务器能够访问到这个目标服务。你可以先在 FinalShell 的 SSH 命令行里,尝试 telnet 目标主机 目标端口 命令,看看是否能通。
  • 检查远程服务器防火墙: 确认远程服务器的防火墙(比如 firewalld 或 ufw)没有阻挡对目标端口的访问。
  • 检查目标服务状态: 确保目标服务(比如数据库服务)已经在目标主机上正常运行。

2. 本地端口被占用,转发规则无法启动?

如果你设置的“监听端口”在本地已经被其他程序占用,FinalShell 会提示端口占用。

  • 更换本地端口: 最直接的办法就是换一个未被占用的本地端口。比如,如果你想用 3306,但它被占了,就换成 3307、3308 等。
  • 查看端口占用: 在 Windows 上可以用 netstat -ano | findstr <端口号> 命令,在 macOS 或 Linux 上可以用 lsof -i:<端口号> 命令来查看哪个进程占用了端口。

3. 转发速度很慢或不稳定?

这通常不是 FinalShell 的问题,而是网络环境导致的。

  • 检查网络带宽: 你的本地网络和远程服务器的网络带宽都会影响转发速度。
  • ** SSH 配置:** 可以尝试在 FinalShell 会话属性的“SSH”标签页里,调整一些参数,比如禁用 TCP_NODELAY(虽然通常是反过来),或者更换加密算法等,但这个操作需要对网络协议有一定了解。
  • 更换服务器线路: 如果是跨国连接,服务器的线路质量对转发速度影响巨大。

FinalShell 的端口转发功能确实非常实用,大大提升了我日常的工作效率。掌握了它,你也能更灵活地访问各种远程服务了!别忘了,如果你还没安装 FinalShell,可以参考 /blog/finalshell-windows-install-guide/ 这篇文章。

延伸阅读

若需进一步查阅,可先看本站以下教程: