Преглед изворни кода

Merge pull request #1435 from jpetazzo/userland-proxy-should-listen-on-inaddr-any

* Runtime: Let userland proxy handle container-bound traffic
Guillaume J. Charmes пре 12 година
родитељ
комит
a2f526dadc
1 измењених фајлова са 3 додато и 2 уклоњено
  1. 3 2
      network.go

+ 3 - 2
network.go

@@ -253,6 +253,7 @@ func (mapper *PortMapper) setup() error {
 
 
 func (mapper *PortMapper) iptablesForward(rule string, port int, proto string, dest_addr string, dest_port int) error {
 func (mapper *PortMapper) iptablesForward(rule string, port int, proto string, dest_addr string, dest_port int) error {
 	return iptables("-t", "nat", rule, "DOCKER", "-p", proto, "--dport", strconv.Itoa(port),
 	return iptables("-t", "nat", rule, "DOCKER", "-p", proto, "--dport", strconv.Itoa(port),
+		"!", "-i", NetworkBridgeIface,
 		"-j", "DNAT", "--to-destination", net.JoinHostPort(dest_addr, strconv.Itoa(dest_port)))
 		"-j", "DNAT", "--to-destination", net.JoinHostPort(dest_addr, strconv.Itoa(dest_port)))
 }
 }
 
 
@@ -264,7 +265,7 @@ func (mapper *PortMapper) Map(port int, backendAddr net.Addr) error {
 			return err
 			return err
 		}
 		}
 		mapper.tcpMapping[port] = backendAddr.(*net.TCPAddr)
 		mapper.tcpMapping[port] = backendAddr.(*net.TCPAddr)
-		proxy, err := NewProxy(&net.TCPAddr{IP: net.IPv4(127, 0, 0, 1), Port: port}, backendAddr)
+		proxy, err := NewProxy(&net.TCPAddr{IP: net.IPv4(0, 0, 0, 0), Port: port}, backendAddr)
 		if err != nil {
 		if err != nil {
 			mapper.Unmap(port, "tcp")
 			mapper.Unmap(port, "tcp")
 			return err
 			return err
@@ -278,7 +279,7 @@ func (mapper *PortMapper) Map(port int, backendAddr net.Addr) error {
 			return err
 			return err
 		}
 		}
 		mapper.udpMapping[port] = backendAddr.(*net.UDPAddr)
 		mapper.udpMapping[port] = backendAddr.(*net.UDPAddr)
-		proxy, err := NewProxy(&net.UDPAddr{IP: net.IPv4(127, 0, 0, 1), Port: port}, backendAddr)
+		proxy, err := NewProxy(&net.UDPAddr{IP: net.IPv4(0, 0, 0, 0), Port: port}, backendAddr)
 		if err != nil {
 		if err != nil {
 			mapper.Unmap(port, "udp")
 			mapper.Unmap(port, "udp")
 			return err
 			return err