服务器代理上网
服务器很强,但是无法连接网络,只能够笨拙地手动上传文件,有时还会因为操作系统不一样无法兼容。。。
让我们来用自己的电脑搭建代理服务器,让服务器也能上网吧!
|< 使用工具:nginx >|
|< 本地环境:macOS 14.0 (23A344) >|
|< 服务器环境:Ubuntu >|
在自己电脑上的操作
安装nginx
下载nginx,版本号不做规定,我下载的是1.19.9,下文用1.19.9为例
wget http://nginx.org/download/nginx-1.19.9.tar.gz
tar -xzf nginx-1.19.9.tar.gz
打补丁:根据你选择的nginx版本,找到对应版本的patch:
git clone https://github.com/chobits/ngx_http_proxy_connect_module.git
cd nginx-1.19.9
patch -p1 < ../ngx_http_proxy_connect_module/patch/proxy_connect_rewrite_1018.patch
安装依赖
cd ..
wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
tar -xzf openssl-3.0.13.tar.gz
wget https://sourceforge.net/projects/pcre/files/pcre/8.35/pcre-8.35.tar.gz
tar -xzf pcre-8.35.tar.gz
wget https://zlib.net/zlib-1.3.1.tar.gz
tar -xzf zlib-1.3.1.tar.gz
config
cd nginx-1.19.9
sudo ./configure --with-openssl=../openssl-3.0.13 --with-pcre=../pcre-8.35 --with-zlib=../zlib-1.3.1 --add-module=../ngx_http_proxy_connect_module --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads
sudo make && make install
验证nginx是否安装成功
/usr/local/nginx/sbin/nginx -V
输出如下
nginx version: nginx/1.19.9
built by gcc 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.2)
built with OpenSSL 1.1.1 11 Sep 2018
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-pcre=../pcre-8.35 --with-openssl=../openssl-1.1.1 --add-module=../ngx_http_proxy_connect_module --with-zlib=../zlib-1.3
提示
/usr/local/nginx/sbin/nginx 执行文件路径
/usr/local/nginx/conf/nginx.conf 配置文件路径
配置nginx.conf文件
cd /usr/local/nginx/conf/
sudo vim nginx.conf
更改为:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server{
listen 8000;
resolver 114.114.114.114;
proxy_connect;
proxy_connect_allow 443 563;
proxy_connect_connect_timeout 10s;
proxy_connect_read_timeout 10s;
proxy_connect_send_timeout 10s;
location / {
proxy_pass http://$host;
proxy_set_header Host $host;
}
}
}
sudo /usr/local/nginx/sbin/nginx -t //检查.config修改是否符合语法
sudo /usr/local/nginx/sbin/nginx -s reload //重启 使其生效
如果reload命令执行报错:
nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)或者
nginx: [error] invalid PID number “” in “/usr/local/nginx/logs/nginx.pid”
你可能需要先执行下面的代码⬇️
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
在服务器上的操作
IP 请查看你自己的电脑:
port 是 这里 图片中listen后面的数字
比如我设置的是8000
pip install --proxy=http://ip:8000 package_name
sudo apt install -o Acquire::http::Proxy="http://ip:8000" package_name
wget --proxy=on --proxy=http://ip:8000 download_link
curl -x http://ip:8000 download_link
git config --global http.proxy http://ip:8000