需求:
A主机(192.168.5.2)到B主机网络通,B到C主机(172.18.4.15)网路通,要从A访问C的端口30000-31000
方案1. 在B上修改iptables,失败,没搞明白。
方案2. B上有openresty,配置4层代理,30000端口测试成功
stream listen 可以支持端口段,格式 xxx-xxx , 但需要 1.15.10 之后的版本
最新的openresty是1.15.8.1,基于nginx 1.15.8 core,不支持。只能重新再装个nginx
源码安装1.16.0 nginx
mkdir /home/nginx
cd /home/nginx
// 下载最新版本 nginx-1.16.0.tar.gz,解压,重命名为nginx-1.16.0-src
wget https://nginx.org/download/nginx-1.16.0.tar.gz
tar -zxf nginx-1.16.0.tar.gz
mv nginx-1.16.0 nginx-1.16.0-src
// 下载依赖的pcre(rewrite模板依赖)pcre-8.43.tar.gz 和 zlib (gzip依赖)zlib-1.2.11.tar.gz, 解压
wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
tar zxf pcre-8.43.tar.gz
wget http://zlib.net/zlib-1.2.11.tar.gz
tar zxf zlib-1.2.11.tar.gz
cd nginx-1.16.0-src
./configure --prefix=/home/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-stream --with-debug --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11
make && make install
./sbin/nginx 启动
编辑conf/nginx.conf
stream {
server {
allow 192.168.5.2;
listen 30000-31000;
proxy_pass 172.18.4.15:$proxy_port;
}
}
重启nginx
./sbin/nginx -t
./sbin/nginx -s reload
网友评论