@@ -999,13 +999,14 @@ add_firewall_rule() {
999999 $ipt_m -N PSW_RULE
10001000 $ipt_m -A PSW_RULE -j CONNMARK --restore-mark
10011001 $ipt_m -A PSW_RULE -m mark --mark ${FWMARK} -j RETURN
1002- $ipt_m -A PSW_RULE -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j MARK --set-xmark ${FWMARK}
1003- $ipt_m -A PSW_RULE -p udp -m conntrack --ctstate NEW -j MARK --set-xmark ${FWMARK}
1002+ $ipt_m -A PSW_RULE -p tcp -m tcp --syn -j MARK --set-xmark ${FWMARK}
1003+ $ipt_m -A PSW_RULE -p udp -m conntrack --ctstate NEW,RELATED -j MARK --set-xmark ${FWMARK}
10041004 $ipt_m -A PSW_RULE -j CONNMARK --save-mark
10051005
10061006 $ipt_m -N PSW
10071007 $ipt_m -A PSW $( dst $IPSET_LAN ) -j RETURN
10081008 $ipt_m -A PSW $( dst $IPSET_VPS ) -j RETURN
1009+ $ipt_m -A PSW -m conntrack --ctdir REPLY -j RETURN
10091010
10101011 [ ! -z " ${WAN_IP} " ] && {
10111012 ipset -F $IPSET_WAN
@@ -1024,7 +1025,6 @@ add_firewall_rule() {
10241025 $ipt_m -N PSW_OUTPUT
10251026 $ipt_m -A PSW_OUTPUT $( dst $IPSET_LAN ) -j RETURN
10261027 $ipt_m -A PSW_OUTPUT $( dst $IPSET_VPS ) -j RETURN
1027-
10281028 [ -n " $IPT_APPEND_DNS " ] && {
10291029 local local_dns dns_address dns_port
10301030 for local_dns in $( echo $IPT_APPEND_DNS | tr ' ,' ' ' ) ; do
@@ -1044,6 +1044,7 @@ add_firewall_rule() {
10441044
10451045 [ " ${USE_BLOCK_LIST} " = " 1" ] && $ipt_m -A PSW_OUTPUT $( dst $IPSET_BLOCK ) -j DROP
10461046 [ " ${USE_DIRECT_LIST} " = " 1" ] && $ipt_m -A PSW_OUTPUT $( dst $IPSET_WHITE ) -j RETURN
1047+ $ipt_m -A PSW_OUTPUT -m conntrack --ctdir REPLY -j RETURN
10471048 $ipt_m -A PSW_OUTPUT -m mark --mark 255 -j RETURN
10481049
10491050 ip rule add fwmark ${FWMARK} lookup 999 priority 999
@@ -1077,13 +1078,14 @@ add_firewall_rule() {
10771078 $ip6t_m -N PSW_RULE
10781079 $ip6t_m -A PSW_RULE -j CONNMARK --restore-mark
10791080 $ip6t_m -A PSW_RULE -m mark --mark ${FWMARK} -j RETURN
1080- $ip6t_m -A PSW_RULE -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j MARK --set-xmark ${FWMARK}
1081- $ip6t_m -A PSW_RULE -p udp -m conntrack --ctstate NEW -j MARK --set-xmark ${FWMARK}
1081+ $ip6t_m -A PSW_RULE -p tcp -m tcp --syn -j MARK --set-xmark ${FWMARK}
1082+ $ip6t_m -A PSW_RULE -p udp -m conntrack --ctstate NEW,RELATED -j MARK --set-xmark ${FWMARK}
10821083 $ip6t_m -A PSW_RULE -j CONNMARK --save-mark
10831084
10841085 $ip6t_m -N PSW
10851086 $ip6t_m -A PSW $( dst $IPSET_LAN6 ) -j RETURN
10861087 $ip6t_m -A PSW $( dst $IPSET_VPS6 ) -j RETURN
1088+ $ip6t_m -A PSW -m conntrack --ctdir REPLY -j RETURN
10871089
10881090 WAN6_IP=$( get_wan_ips ip6)
10891091 [ ! -z " ${WAN6_IP} " ] && {
@@ -1106,6 +1108,7 @@ add_firewall_rule() {
11061108 $ip6t_m -A PSW_OUTPUT $( dst $IPSET_VPS6 ) -j RETURN
11071109 [ " ${USE_BLOCK_LIST} " = " 1" ] && $ip6t_m -A PSW_OUTPUT $( dst $IPSET_BLOCK6 ) -j DROP
11081110 [ " ${USE_DIRECT_LIST} " = " 1" ] && $ip6t_m -A PSW_OUTPUT $( dst $IPSET_WHITE6 ) -j RETURN
1111+ $ip6t_m -A PSW_OUTPUT -m conntrack --ctdir REPLY -j RETURN
11091112
11101113 ip -6 rule add fwmark ${FWMARK} table 999 priority 999
11111114 ip -6 route add local ::/0 dev lo table 999
0 commit comments