最近笔者遇到一个情况,有一个软件默认监听是localhost
的端口,导致内网其它电脑无法使用,只能本机使用,除非该端口是监听的0.0.0.0
的端口。但是该软件没有任何配置可以设定监听为0.0.0.0
,那只能在本机开一个代理,让代理去连接该软件监听的本地端口,而代理是以0.0.0.0
监听另外一个端口。
有一个代理软件CCProxy,可以实现这样的功能,但是它是一个收费软件。其实nginx完全可以实现这样的功能,而且完全开源免费。
nginx可以实现正向代理,也可以实现反向代理。什么是正向代理?什么是反向代理?可以非常简单地理解为:正向代理就是代理在用户端(近端);反向代理就是代理在服务端(远端)。近端、远端的概念是以用户为中心的。
我们这里就是需要配置一个运行在服务器(远端)的代理——反向代理。服务端配置好代理后,其它用户就可以远程连接这个代理通信(上网)了。
非常简单的配置:
nginx.conf
:
worker_processes 1;
events {
worker_connections 1024;
}
stream {
server {
listen 8081; # 监听端口
proxy_pass 127.0.0.1:8001; # 转发目标
}
}
用户端只需要连接这个代理主机的8081
端口即可。