nginx正向代理——实现上网功能

nginx不仅可以来做反向代理,也可以用来做正向代理(透明代理,代理上网)。

反向代理,外部机器通过网关访问网关后面服务器上的内容,网关起到了反向代理的功能,我们平时通过浏览器访问远程的web服务器大都是这样实现的。

正向代理,就是上面的过程反过来,我们平时说的代理上网,局域网中的用户通过网关做代理访问外部的网络。

nginx同样可以实现代理上网的功能,配置如下:

user www;
worker_processes 1;
error_log /var/log/nginx/error.log debug;
 
events {
	use epoll;
	worker_connections 1024;
}
 
http {
	resolver 8.8.8.8;
	server {
		listen 8088;
		location / {
			proxy_pass http://$http_host$request_uri;
		}
	}
}

nginx实现代理上网,有三个关键点必须注意,其余的配置跟普通的nginx一样
1.增加dns解析resolver

2.增加无server_name名的server

3.proxy_pass指令

具体上网步骤:

1、找一台可以上服务器,安装nginx,然后按照上面配置好正向代理。

2、windows配置代理:

nginx正向代理——实现上网功能_第1张图片

3、Linux上配置代理:

1)wget下的代理设置
A、临时生效

set "http_proxy=http://[user]:[pass]@host:port/"
或
export "http_proxy=http://[user]:[pass]@host:port/" 

执行完,就可以在当前shell 下使用wget程序了。

B、使用wget参数
wget -e "http_proxy=http://[user]:[pass]@host:port/" http://baidu.com

C、当前用户永久生效

创建$HOME/.wgetrc文件,加入以下内容:
http_proxy=代理主机IP:端口
配置完后,就可以通过代理wget下载包了。

注:如果使用ftp代理,将http_proxy 改为ftp_proxy 即可。

2)lftp下代理设置

使lftp可以通过代理上网,可以做如下配置:

echo "export http_proxy=proxy.361way.com:8888" > ~/.lftp

3)yum设置

编辑/etc/yum.conf文件,按如下配置
http_proxy=代理主机IP:端口
proxy=http://yourproxy:8080/ #匿名代理proxy=http://username:password@yourproxy:8080/ #需验证代理


4)全局代理配置

编辑/etc/profile 或~/.bash_profile ,增加如下内容:

http_proxy=proxy.361way.com:8080
https_proxy=proxy.361way.com:8080
ftp_proxy=proxy.361way.com:8080
export http_proxy https_proxy ftp_proxy 

5)socket代理配置

这里以两个常见的socket代理软件socks5 和 tsocks 为例:
A、tsocks代理

在终端中:
sudo apt-get install tsocks
修改配置文件:
sudo nano /etc/tsocks.conf

将其内容改成以下几行并保存退出:

local = 192.168.1.0/255.255.255.0 #local表示本地的网络,也就是不使用socks代理的网络
server = 127.0.0.1 # SOCKS 服务器的 IP
server_type = 5 # SOCKS 服务版本
server_port = 9999 #SOCKS 服务使用的端口
运行软件:
用 tsocks 运行你的软件很简单,在终端中:tsocks 你的软件 ,如tsocks wget url


B、socks5代理
安装socks客户端工具runsocks(正常安装socks5后自带)。在libsocks5.conf文件里加入所要使用的代理服务器。配置完成,可以通过如下命令运行测试:
runsocks wget -m [http://site1 | ftp://site2]

你可能感兴趣的:(linux)