这个问题与我的早期帖子。我认为这很简单,只是我对网络和 ubuntu 防火墙了解不够。
我跟着本文并在 ec2 上的 ubuntu 服务器内设置一个 linux 容器。我可以从容器访问互联网。
| ----Ubuntu Server on EC2 -----
==== INTERNET <==== > | some magic routes traffic <=== lxc container
| [192.168.3.1]
|------------------------------
我只需要集装箱内的互联网安装依赖项对于我的应用程序。现在我需要关闭互联网访问。我不会介意任何其他方法,例如阻止某个用户帐户访问互联网。
网络配置如下,如果您对我应阅读的内容有任何想法、线索或建议,我将不胜感激:
有一个网桥:
brctl addbr br0
brctl setfd br0 0
ifconfig br0 192.168.3.1 up
然后我这样做了:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1
然后是这个:cat /etc/dnsmasq.conf
domain-needed
bogus-priv
interface = br0
listen-address = 127.0.0.1
listen-address = 192.168.3.1
expand-hosts
domain = containers
dhcp-range = 192.168.3.50,192.168.3.200,1h
然后 :cat etc/dhcp3/dhclient.conf
prepend domain-name-servers 127.0.0.1;
prepend domain-search "containers.";
然后我跑了:
dhclient -e IF_METRIC=100 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0
答案1
所以我自己就想出了办法。
我只是做 :
sysctl -w net.ipv4.ip_forward=0
瞧!:) 当然,如果我这样做,ping www.google.com
它会解析 google 的 IP,然后失败。所以 dns 仍然有效。
一个简单的切换如果能给出解决方案的话我会很感激:)