我想查看应用程序的 HTTP 代理支持是否正常工作。为了检查这一点,我在 Mac 笔记本电脑上安装了 Ubuntu VirtualBox,并且我想配置虚拟机,使其无法访问除我的测试代理服务器之外的任何其他互联网主机。
我该如何配置虚拟机?从我读到的内容来看,“route add ...” 应该可以做到这一点,但我不确定如何使用它。
请指教!谢谢!
答案1
您正在寻找 iptables 和防火墙规则。可以这样工作
iptables -A OUTPUT -j DROP
iptables -I OUTPUT -d 192.168.0.1 -j ACCEPT
但请记住,这将阻止所有其他流量,因此您需要具有对机器的控制台访问权限。并用代理 IP 替换 192.168.0.1。
如果代理服务器也是网关,您还可以将端口添加到第二个 iptables 语句 pe -p 3128,以便 squid 代理服务器只能连接到该端口。第二,您还必须记住,DNS 请求也将被阻止,要启用它们,您需要添加第二条规则来启用 DNS 请求
iptables -A OUTPUT -j DROP
iptables -I OUTPUT -d 192.168.0.1 -p 3128 -j ACCEPT
iptables -I OUTPUT -d 192.168.0.1 -p 53 -j ACCEPT
答案2
您可以做以下事情:
- 设置环境变量,假设您只谈论 HTTP 代理
http_proxy="http://用户名:密码@主机:端口" ; 导出 http_proxy
- 使用路由将所有流量路由到 IP 级别的某个主机
路由添加默认网关 12.12.12.12
其中 12.12.12.12 应该替换为运行代理服务器的网关 IP 地址。
- 丢弃到其他主机的所有流量,但使用 iptables 的数据库