最近笔者遇到一个情况,有一个软件默认监听是localhost的端口,导致内网其它电脑无法使用,只能本机使用,除非该端口是监听的0.0.0.0的端口。但是该软件没有任何配置可以设定监听为0.0.0.0,那只能在本机开一个代理,让代理去连接该软件监听的本地端口,而代理是以0.0.0.0监听另外一个端口。

有一个代理软件CCProxy,可以实现这样的功能,但是它是一个收费软件。其实nginx完全可以实现这样的功能,而且完全开源免费。

nginx可以实现正向代理,也可以实现反向代理。什么是正向代理?什么是反向代理?可以非常简单地理解为:正向代理就是代理在用户端(近端);反向代理就是代理在服务端(远端)。近端、远端的概念是以用户为中心的。

我们这里就是需要配置一个运行在服务器(远端)的代理——反向代理。服务端配置好代理后,其它用户就可以远程连接这个代理通信(上网)了。

非常简单的配置:

nginx.conf

 1worker_processes  1;
 2events {
 3    worker_connections  1024;
 4}
 5stream {
 6   server {
 7	   listen 8081;                      # 监听端口
 8	   proxy_pass 127.0.0.1:8001;        # 转发目标
 9   }
10}

用户端只需要连接这个代理主机的8081端口即可。