我的 ISP(公立医院)通过一款名为 Fortiguard 的程序屏蔽了所有内容。这非常烦人。它屏蔽了我的公共图书馆,称其为恐怖组织;屏蔽了我的工作电子邮件,称其为社交媒体;屏蔽了我的计算机支持和编码网站,将其归类为“黑客”。
但是 Crackle、Netflix、Youtube、Facebook 和 Pandora 似乎运行良好。我很惊讶这些网站居然还能用。VPN 不起作用。更改 DNS 服务器不起作用。HTTPS 甚至不能保证我的安全。唯一能用的只有 Tor。我想通过 Tor 中受信任的出口节点路由我的所有系统连接。
我认为最好的方法是在我的 VPS 上创建一个带有隐藏服务地址(VPS 带宽有限)的 VPN 服务器(如果他们没有阻止的话ssh
)。为此,我需要通过 Tor 代理路由所有内容,然后通过 VPN 协议路由到隐藏的服务地址。我还要在这里呆三天,我真的很想向这家医院的 IT 部门说明我的想法,但为了避免冲突,我宁愿停止胡说八道并绕过这一切。
长话短说:有没有办法通过代理路由 VPN?这样互联网访问就会像这样:
PC-->代理-->VPN-->互联网
答案1
您可以通过以下方式启动 openvpn:
# openvpn --config config.file --http-proxy 127.0.0.1 3128
但是,http-proxy 不支持 UDP,可能只能使用 TCP vpn 来执行此操作。
但是 openvpn 有 --socks-proxy 选项,您可以使用 socks5 代替 http-proxy,socks5 同时支持 UDP 和 TCP。
答案2
这不是 VPN,但它是绕过代理服务器的解决方案。如果尚未安装 sshd,请安装它。
sudo install sshd
让 sshd 监听非标准端口。在 /etc/ssh/sshd_config 中,你会看到
port 22
你可以更改该端口号,或者使用多个端口指令让 sshd 监听多个端口,例如
port 22
port 5743
更改端口号或者保留原来的端口号。
使用以下命令加载新配置:
/etc/init.d/sshd restart
在您的 sshserver 上安装 squid 代理服务器。
sudo apt-get install squid3
通过修改文件 /etc/squid3/squid.conf ,让 squid 代理服务器列出 sshd 服务器的 127.0.0.1 上的端口 8080。
http_port 127.0.0.1:8080
你可以用这些线连接到它
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
使用命令加载新配置
/etc/inid.d/squid3 restart
现在,您可以使用 putty 或工作机器上的任何其他 ssh 客户端连接到您的 sshserver。命令行示例:
ssh -L 8081:127.0.0.1:8080 user@sshserver -p 5743
最后一步,将浏览器的代理设置为 127.0.0.1 的端口 8081。当您的浏览器向本地计算机地址 127.0.0.1 端口 8081 发出请求时,监听该端口的 ssh 客户端会将请求隧道传输到监听 sshserver 端口 5743 的 sshserver。然后,ssh 服务器会将流量明文转发到监听 127.0.0.1 端口 8080 的 squid 代理服务器。在您的 sshserver 上运行的代理服务现在会将您的 Web 浏览器请求代理到 youtube、facebook、google 等。