端口转发
前言
关于【端口转发】这篇文章挺全面的,共有8种场景,研究了一下很多时候还是挺方便得。
但是对于我来说经常用到的就是服务器只提供了本地端口服务器,想要远程访问很不方便。比如部署了“127.0.0.1:3306”的mysql服务,我只能用命令行了。
我又不想修改测试环境,毕竟要和发布环境保持一致。所以用端口转发是个好方案。(ps:mysql那个我使用【adminer】也很方便。)
端口转发
ssh转发
执行
ssh -C -f -N -g -L 3306:127.0.0.1:3306 admin@192.168.1.10 -p 22
就能将下面图片所示的mysql端口转发为对外能访问的端口,可以愉快地用Navicat了。
上面命令可解释为ssh -C -f -N -g -L 监听端口:目标IP:目标端口 用户名@转发服务器IP -p 转发服务器端口
,可参考【端口转发】的更多用法。
Nginx转发
- 编译
由于只需要转发功能,去掉http模块(加入-s选项),这样编译出来的Nginx体积很小,只有转发功能可用额。
./configure --prefix=/usr/local/nginx --with-stream --without-http
make 提取objs/nginx即可
- 配置文件
copyuser root;
worker_processes auto;
events {
use epoll;
worker_connections 1024;
}
stream {
server {
listen 3000; # 监听3000的tcp连接
proxy_pass 127.0.0.1:33306; # 转发33306端口
# proxy_pass unix:/var/lib/mysql/mysql.socket; # 可转发unix文件连接
}
server {
listen 3001 udp; # 监听3001的udp端口
proxy_pass 127.0.0.1:3001;
proxy_responses 1;
}
}
- 运行程序
mkdir logs conf
vim conf/nginx.conf # 写入步骤2的配置
sudo ./nginx -p . # 指定前缀路径即可
Windows转发
- 右键管理员权限打开cmd
- 添加端口转发
执行命令
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=4430 connectaddress=192.168.1.10 connectport=443
表示访问127.0.0.1:4430
会转发到192.168.1.10:443
上,下图表示执行成功。
执行netsh interface portproxy show all
可以查看当前已有的端口转发的记录。
执行netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=4430
可以删除已有端口转发记录。
总结
端口转发真的很实用额,我看了那8中通过ssh进行的端口转发,都是实用干货啊。与之对应的是端口映射,以前用过
源地址转换
和目的地址转换
也是很使用的功能额,只是我用的比较少罢了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~