@@ -276,6 +276,18 @@ func (ts *tproxyServer) ApplyRedirectRules(opts map[string]string) {
276276 if err := cmdInit .Run (); err != nil {
277277 ts .p .logger .Fatal ().Err (err ).Msgf ("[tcp %s] Failed while configuring iptables. Are you root?" , ts .p .tproxyMode )
278278 }
279+ if ts .p .ignoredPorts != "" {
280+ cmdInit1 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
281+ %s
282+ iptables -t nat -A GOHPTS -p tcp -m multiport --dports %s -j RETURN
283+ iptables -t nat -A GOHPTS -p tcp -m multiport --sports %s -j RETURN
284+ ` , setex , ts .p .ignoredPorts , ts .p .ignoredPorts ))
285+ cmdInit1 .Stdout = os .Stdout
286+ cmdInit1 .Stderr = os .Stderr
287+ if err := cmdInit1 .Run (); err != nil {
288+ ts .p .logger .Fatal ().Err (err ).Msgf ("[tcp %s] Failed while configuring iptables. Are you root?" , ts .p .tproxyMode )
289+ }
290+ }
279291 if ts .p .httpServerAddr != "" {
280292 _ , httpPort , _ := net .SplitHostPort (ts .p .httpServerAddr )
281293 cmdHTTP := exec .Command ("bash" , "-c" , fmt .Sprintf (`
@@ -375,6 +387,18 @@ func (ts *tproxyServer) ApplyRedirectRules(opts map[string]string) {
375387 if err := cmdInit0 .Run (); err != nil {
376388 ts .p .logger .Fatal ().Err (err ).Msgf ("[tcp %s] Failed while configuring iptables. Are you root?" , ts .p .tproxyMode )
377389 }
390+ if ts .p .ignoredPorts != "" {
391+ cmdInit1 := exec .Command ("bash" , "-c" , fmt .Sprintf (`
392+ %s
393+ iptables -t mangle -A GOHPTS -p tcp -m multiport --dports %s -j RETURN
394+ iptables -t mangle -A GOHPTS -p tcp -m multiport --sports %s -j RETURN
395+ ` , setex , ts .p .ignoredPorts , ts .p .ignoredPorts ))
396+ cmdInit1 .Stdout = os .Stdout
397+ cmdInit1 .Stderr = os .Stderr
398+ if err := cmdInit1 .Run (); err != nil {
399+ ts .p .logger .Fatal ().Err (err ).Msgf ("[tcp %s] Failed while configuring iptables. Are you root?" , ts .p .tproxyMode )
400+ }
401+ }
378402 cmdDocker := exec .Command ("bash" , "-c" , fmt .Sprintf (`
379403 %s
380404 if command -v docker >/dev/null 2>&1
0 commit comments