服务器A192.168.15.10在内网,B服务器192.16.43.18是内网IP,192,172.0.15是B服务器的互联网映射IP,现从服务器A发送请求到互联网的180.101.49.70,在B服务器上搭建一个代理,使用Bash写一个代理
时间: 2024-10-24 19:19:21 浏览: 35
相册批量下载 飓风新浪微博相册批量下载助手 v15.10.28.01
在B服务器上设置一个代理,通常可以使用`socat`工具或者`nginx`、`haproxy`等专门的负载均衡器来转发请求。这里我将演示如何使用`socat`作为简单的HTTP代理:
首先,确保安装了`socat`,如果没有,可以使用包管理器安装,如在Ubuntu上:
```bash
sudo apt-get install socat
```
然后,你可以创建一个配置文件,例如`proxy.sh`,用于启动代理服务:
```bash
#!/bin/bash
# 创建本地监听端口
local_proxy_port=8080
# 监听并转发到外部服务器
socat TCP-LISTEN:$local_proxy_port,fork,reuseaddr TCP:192.168.15.10:80 # B服务器内网IP和端口
socat TCP-LISTEN:$local_proxy_port,fork,reuseaddr TCP:192.172.0.15:80 # 互联网映射IP和端口
echo "Proxy started on port $local_proxy_port. Use it to forward requests to 180.101.49.70."
```
接下来,为了使其开机自启,你可以将这个脚本添加到`/etc/rc.local`或者其他合适的启动文件中,并确保有执行权限:
```bash
chmod +x proxy.sh
sudo cp proxy.sh /etc/init.d/proxy || sudo touch /etc/init.d/proxy
sudo update-rc.d proxy defaults
```
然后,通过运行`sudo service proxy start`启动代理。
现在,当你需要从服务器A向180.101.49.70发送请求时,可以在服务器A上通过访问`http://B服务器的公网IP:8080`来间接达到目的。
阅读全文