使用 nginx 进行端口转发

这个应该是很简单的东西了,不过在此之前我对端口转发,反向代理之类的名词都还没什么概念呢,虽然心里有着各式各样的需求但完全不知道怎么样实现,通过最近一段时间的学习至少可以知道这些网络技术是用来解决什么样的问题的了(x

所以说什么地方才会用得到端口转发呢?大概就是在同一个 IP 上面运行了两个服务的时候吧…这样说有些难以理解。我就举个我真实情况下的例子吧:

在上面的文章里,我把路由器和 VPS 连接在了一起,但是每每想要访问路由器的 SSH 时候都得先登录进去 VPS 的 SHH,输入 root@10.0.1.2 才能继续访问路由器的 SSH,非常不方便了,如果想要直接访问到路由器的 SSH,就需要设置端口转发了。

这里端口转发使用强大的 nginx 来完成:安装和配置流程如下

apt update #更新软件源
apt install nginx #安装 nginx
nginx -t #检查一下配置文件( nginx.conf )的路径在哪

对配置文件进行编辑,添加下面的内容
stream{ }表示转发 TCP Stream,proxy_pass表示被转发的地址和端口,上面的例子中路由器的 IP 地址是 10.0.1.2,所以下面就这样填写,这样属于路由器22端口的服务就被转发到了 VPS 上的 2222 端口了。

stream {
server {
listen 2222;
proxy_pass 10.0.1.2:22;
}
}

修改后保存,然后使用
nginx -t #检查一下配置文件( nginx.conf )的语法格式是否合格
没有问题后重启 nginx,配置就生效了。

whereis nginx #确定 nginx 的位置
./nginx -s reload #重新启动 nginx

Posted in 用爱摸鱼

发表评论

电子邮件地址不会被公开。 必填项已用*标注