本地配置 socks 代理
使用 shadowsocks
-
安装 shadowsocks
- 在终端运行以下命令安装:
wget https://github.com/shadowsocks/shadowsocks/releases/download/vlatest/shadowsocks-x64-linux-gnu.gz gunzip shadowsocks-x64-linux-gnu.gz chmod +x shadowsocks ./shadowsocks
- 在终端运行以下命令安装:
-
选择服务器和端口
- 运行
shadowsocks -c "socks://IP:PORT@server:port",IP:PORT是你本地的 socks 地址(如..1:108)。
- 运行
-
设置浏览器或应用
- 在浏览器或应用中设置 socks 代理地址为
..1:108。
- 在浏览器或应用中设置 socks 代理地址为
使用 sockschains
-
安装 sockschains
- 下载并安装 sockschains:
wget https://github.com/shadowsocks/sockschains/releases/download/vlatest/sockschains-x64-linux-gnu.gz gunzip sockschains-x64-linux-gnu.gz chmod +x sockschains ./sockschains
- 下载并安装 sockschains:
-
配置 sockschains
-
创建或编辑配置文件
~/.sockschains.conf,添加中继服务器地址。 -
示例配置:
[socks] socks_server = socks123.net:108 socks_port = 108 [socks] socks_server = socks123.net:108 socks_port = 108 [socks] socks_server = socks123.net:108 socks_port = 108
-
-
设置本地 socks 地址
- 在终端运行:
sockschains -c "socks://IP:PORT@127...1:108"
- 在终端运行:
服务器配置反向代理(Nginx 或 Apache)
使用 Nginx
-
安装 Nginx
- 运行以下命令安装并启用:
sudo apt update sudo apt install nginx sudo systemctl start nginx sudo systemctl enable nginx
- 运行以下命令安装并启用:
-
配置 Nginx 作为反向代理
-
打开 Nginx 配置文件(如
/etc/nginx/sites-available/default):server { listen 80; server_name your_domain.com; location / { proxy_pass http://target_ip:target_port; proxy_set_header Host target_domain.com; proxy_set_header X-Real-IP $remote_addr; } }
-
-
启用模块
- 如果需要 SSL,安装并启用
nginx-ssl模块:sudo a2enmod ssl sudo systemctl restart nginx
- 如果需要 SSL,安装并启用
-
测试
访问服务器的网页,确保反向代理正常工作。
使用 Apache
-
安装 Apache
- 安装并启用 Apache:
sudo apt update sudo apt install apache2 sudo systemctl start apache2 sudo systemctl enable apache2
- 安装并启用 Apache:
-
配置 Apache 反向代理
- 打开 Apache 配置文件(如
/etc/apache2/sites-available/000-default.conf):<VirtualHost *:80> ProxyPass / http://target_ip:target_port/ ProxyReverseProxy On SetEnvIf X-Forwarded-For ".*" X-Forwarded-For="::$Forwarded-For" </VirtualHost>
- 打开 Apache 配置文件(如
-
启用模块
- 启用
proxy和proxy_http模块:sudo a2enmod proxy proxy_http sudo systemctl restart apache2
- 启用
-
测试
确保 Apache 正确反向代理到目标服务器。
设置代理认证
Nginx 配置
在 Nginx 配置文件中添加认证信息:
server {
listen 80;
server_name your_domain.com;
location / {
proxy_pass http://target_ip:target_port;
proxy_set_header Host target_domain.com;
proxy_set_header X-Real-IP $remote_addr;
auth_basic "Basic Authentication";
auth_user_group admin;
auth_basic_user file:///path/to/users;
}
}
- 创建
users文件,包含用户名和密码,如:username:password
Apache 配置
在 Apache 配置文件中添加认证:
<VirtualHost *:80>
ProxyPass / http://target_ip:target_port/
<ProxyMatch "/" />
AuthType Basic
AuthName "Basic Auth"
RequireValidUser
RewriteEngine on
RewriteCond %{HTTP_CREDENTIALS} (.*)
RewriteRule .* http://localhost:%1%2/ [E]u]
</VirtualHost>
- 创建
htpasswd文件,htpasswd -c /path/to/users.htpasswd username htpasswd -C /path/to/users.htpasswd password
安全和访问控制
-
只允许通过代理访问外部资源:
location / { proxy_pass http://target_ip:target_port; proxy_set_header X-Frame-Options "DENY"; proxy_set_header X-Content-Type-Options "nosniff"; } -
限制某些 URL 或 IP:
location /binary { proxy_pass http://target_ip:target_port; proxy_set_header X-Frame-Options "DENY"; } -
使用 iptables 控制端口:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT
日志记录
- 在 Nginx 配置中启用日志记录:
access_log /var/log/nginx/access.log error_log /var/log/nginx/error.log
通过以上步骤,你可以根据具体需求配置代理服务器,确保本地或服务器的网络流量通过指定的代理地址和目标服务器正常访问。
