通过有网的服务器代理上网

假设你有多台服务器,其中只有一台服务器可以连接互联网,但是另外几台服务器同样有连接互联网的需求,可以通过如下几种方式进行代理上网。

通过Nginx请求转发

1、在http段增加一个虚拟主机

1
2
3
4
5
6
7
8
9
http {
resolver 8.8.8.8;
server {
listen 8088;
location / {
proxy_pass $scheme://$http_host$request_uri;
}
}
}

注: 新增server段不需要配置 server_name 参数

2、重启Nginx服务使配置文件生效
3、在需要上网的Linux服务器上配置如下环境变量

1
2
export http_proxy=Nginx部署服务器IP:配置的转发端口
export https_proxy=Nginx部署服务器IP:配置的转发端口

注: 如果只想让其他服务器访问某一个网站,则可以不配置该环境变量,Nginx配置修改成如下形式,其他服务器直接访问那台服务器的IP加端口即可

1
2
3
4
5
6
7
8
9
http {
server {
listen 8088;
server_name localhost;
location / {
proxy_pass https://www.163.com;
}
}
}

通过SSH端口转发

该方式只适合于明确知道对方服务器端口的情况下使用,比如连接互联网上的某台数据库服务等。

语法:

1
ssh -L 绑定的本地IP:绑定的本地端口:远程IP:远程端口 在哪台机器上进行绑定(主机名)

以下以连接公网部署的MySQL为例进行配置。

1、在可以连接互联网的服务器上通过SSH把远程端口和本地端口进行映射

1
ssh -L 0.0.0.0:3306:112.74.33.64:3306 localhost

2、输入对方服务器用户名和密码
3、检查是否建立成功

1
netstat -nltp | grep 3306

4、在需要连接公网MySQL的机器上进行配置端口转发

1
ssh -L 0.0.0.0:3306:执行步骤1操作的服务器IP:3306 localhost

  • 本文作者: Harmel
  • 本文链接: http://www.harmel.cn/2018/10/proxy-net.html
  • 版权声明: 文章如无特别说明,则表明该文章为原创文章,如需要转载,请注明出处。
  • 本站说明: 本站使用阿里云服务器,如果您喜欢我的网站,欢迎收藏,能捐赠支持一下就再好不过了。