linux共享网络代理设置
需求:服务器A和B都是ubuntu系统,A有外网和内网,B只有内网,B需要通过A来连接外网。
网上说的NAT、Iptables什么的太杂太绕了,找到一篇文章不需要这么麻烦的。
服务器A
有外网的服务器A搭建TinyProxy代理服务器
sudo apt-get install tinyproxy -y
配置文件在/etc/tinyproxy/tinyproxy.conf
两处需要改变,port我没变,allow这行我直接注释掉了。
Port 8888 #预设是8888 Port,你可以更改
Allow 127.0.0.1 #将127.0.0.1改成你自己的IP
#例如你的IP 是1.2.3.4,你改成Allow 1.2.3.4,那只有你才可以连上这个Proxy
#若你想任何IP都可以脸到Proxy在Allow前面打#注释
其他配置
- 以根用户启动时,在初始化完成后切换 uid/gid 为 nobody/nogroup
- Port 默认监听端口为 8888(该端口无需用 root 权限绑定)
- 默认在所在网卡上监听
- Logfile (必须) 日志文件, 默认 / usr/var/log/tinyproxy/tinyproxy.log,在 LogFile 文件不存在时会警告,不会运行失败。
- Pidfile (必须)pid 文件, 默认 / usr/var/run/tinyproxy/tinyproxy.pid,在 PidFile 文件不存在时会运行失败。
- StartServers 初始启动的代理服务器子进程 (默认是 10 个)
- Allow 允许使用 tinyproxy 进行 HTTP 代理的 IP 地址。默认是 127.0.0.1,如果想要公开 tinyproxy 代理服务器,则把 Allow 一行注释掉
命令
#运行
service tinyproxy start
#默认启动
sudo service tinyproxy start
#重启
sudo service tinyproxy restart
#停止
sudo service tinyproxy stop
服务器B
测试一下,IP为服务器A的ip,端口就是刚才设置的8888
curl -x <IP>:<PORT> www.baidu.com
能够正常返回百度的html代码就算成功了。接下来设置服务器B的代理
临时设置
临时就是在此终端中有效,关了再开就失效了,直接在命令行里面敲下面的命令
export http_proxy='http://代理服务器IP:端口号'
export https_proxy='http://代理服务器IP:端口号'
永久设置就是在/etc/profile里面添加上面的语句
export http_proxy='http://代理服务器IP:端口号'
export https_proxy='http://代理服务器IP:端口号'
然后source /etc/profile,这样子就能连上网了。
外传
这部分内容需要同时服用ssh到内网服务器。
在上述的需求上,再加上,服务器2需要通过frpc连接到公网服务器,所以需要再次修改/etc/tinyproxy/tinyproxy.conf,修改ConnectPort,多增加一个7000端口,或者直接注释掉,代理所有的端口。
整体蛋疼的网络共享和内网穿透图就如下所示。





