@@ -1181,19 +1181,33 @@ func (p *proxyapp) applyRedirectRules() string {
11811181 if err := cmd1 .Run (); err != nil {
11821182 p .logger .Fatal ().Err (err ).Msg ("Failed while configuring iptables. Are you root?" )
11831183 }
1184+ if len (p .proxylist ) > 0 {
1185+ for _ , pr := range p .proxylist {
1186+ _ , port , _ := net .SplitHostPort (pr .Address )
1187+ cmd2 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
1188+ set -ex
1189+ iptables -t nat -A GOHPTS -p tcp --dport %s -j RETURN
1190+ ` , port ))
1191+ cmd2 .Stdout = os .Stdout
1192+ cmd2 .Stderr = os .Stderr
1193+ if err := cmd2 .Run (); err != nil {
1194+ p .logger .Fatal ().Err (err ).Msg ("Failed while configuring iptables. Are you root?" )
1195+ }
1196+ }
1197+ }
11841198 if p .httpServerAddr != "" {
11851199 _ , httpPort , _ := net .SplitHostPort (p .httpServerAddr )
1186- cmd2 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
1200+ cmd3 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
11871201 set -ex
11881202 iptables -t nat -A GOHPTS -p tcp --dport %s -j RETURN
11891203 ` , httpPort ))
1190- cmd2 .Stdout = os .Stdout
1191- cmd2 .Stderr = os .Stderr
1192- if err := cmd2 .Run (); err != nil {
1204+ cmd3 .Stdout = os .Stdout
1205+ cmd3 .Stderr = os .Stderr
1206+ if err := cmd3 .Run (); err != nil {
11931207 p .logger .Fatal ().Err (err ).Msg ("Failed while configuring iptables. Are you root?" )
11941208 }
11951209 }
1196- cmd3 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
1210+ cmd4 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
11971211 set -ex
11981212 if command -v docker >/dev/null 2>&1
11991213 then
@@ -1210,25 +1224,25 @@ func (p *proxyapp) applyRedirectRules() string {
12101224 iptables -t nat -C OUTPUT -p tcp -j GOHPTS 2>/dev/null || \
12111225 iptables -t nat -A OUTPUT -p tcp -j GOHPTS
12121226 ` , tproxyPort ))
1213- cmd3 .Stdout = os .Stdout
1214- cmd3 .Stderr = os .Stderr
1215- if err := cmd3 .Run (); err != nil {
1227+ cmd4 .Stdout = os .Stdout
1228+ cmd4 .Stderr = os .Stderr
1229+ if err := cmd4 .Run (); err != nil {
12161230 p .logger .Fatal ().Err (err ).Msg ("Failed while configuring iptables. Are you root?" )
12171231 }
1218- cmd4 := exec .Command ("bash" , "-c" , `
1232+ cmd5 := exec .Command ("bash" , "-c" , `
12191233 cat /proc/sys/net/ipv4/ip_forward
12201234 ` )
1221- output , err := cmd4 .CombinedOutput ()
1235+ output , err := cmd5 .CombinedOutput ()
12221236 if err != nil {
12231237 p .logger .Fatal ().Err (err ).Msg ("Failed while configuring iptables. Are you root?" )
12241238 }
1225- cmd5 := exec .Command ("bash" , "-c" , `
1239+ cmd6 := exec .Command ("bash" , "-c" , `
12261240 set -ex
12271241 sysctl -w net.ipv4.ip_forward=1
12281242 ` )
1229- cmd5 .Stdout = os .Stdout
1230- cmd5 .Stderr = os .Stderr
1231- _ = cmd5 .Run ()
1243+ cmd6 .Stdout = os .Stdout
1244+ cmd6 .Stderr = os .Stderr
1245+ _ = cmd6 .Run ()
12321246 return string (output )
12331247}
12341248
0 commit comments