@@ -44,7 +44,7 @@ IPv6='IPv6::'
44
44
ip4 () (/opt/sbin/ip -4 " $@ " )
45
45
ip4tables () (/opt/sbin/iptables -C " $@ " & > /dev/null || /opt/sbin/iptables -A " $@ " )
46
46
iptab () (/opt/sbin/iptables " $@ " )
47
- ip4save () (/opt/sbin/iptables-save)
47
+ ip4save () (/opt/sbin/iptables-save | grep -vE ' \-A _ ' )
48
48
get_gw4 ()([ " ${1} " ] && ip4 addr show " ${1} " | grep -Po " (?<=inet ).*(?=/)" )
49
49
has_ssr_enable () ([ ! -f " /opt/etc/ndm/netfilter.d/100-vpn-mark" ])
50
50
@@ -191,24 +191,24 @@ ip4_firewall_mark_rules_tcp_udp_on(){
191
191
# Правила маркировки гостевого трафика
192
192
#
193
193
# ------------------------------------------------------------------------------------------
194
+ get_guest_net (){
195
+ ip addr show " ${1} " | grep global | sed ' s/^.*inet \(.*\).*/\1/' | cut -d' ' -f1
196
+ }
194
197
ip4_add_selected_guest_to_vpn_network (){
195
198
guest_inface=" ${1} "
196
- rules_masq=$( ip4save | grep " \-j MASQUERADE" | grep " ${guest_inface} " )
197
- rules_dns=$( ip4save | grep " ${guest_inface} " | grep DNAT | grep 53)
198
- if [ -z " ${rules_dns} " ] || [ -z " ${ rules_masq}" ] ; then
199
+ rules_masq=$( ip4save | grep " \-j MASQUERADE" | grep " ${guest_inface} " )
200
+ # rules_dns=$(ip4save | grep " ${guest_inface} " | grep DNAT | grep 53)
201
+ if [ -z " ${rules_masq} " ] ; then
199
202
# Маркируем трафик гостевой сети
200
203
{
201
204
log_warning " Подключаем правила маркировки гостевого трафика для VPN."
202
- # ip4tables PREROUTING -w -t nat -i "${guest_inface}" -p tcp -j DNAT --to "$(inface_gw4):53"
203
- # ip4tables PREROUTING -w -t nat -i "${guest_inface}" -p udp -j DNAT --to "$(inface_gw4):53"
204
- ip4tables POSTROUTING -t nat -s " $( guest_net " ${guest_inface} " ) " -o " ${guest_inface} " -m ndmmark --ndmmark ${MARK_NUM} -j MASQUERADE
205
+ ip4tables POSTROUTING -t nat -s " $( get_guest_net " ${guest_inface} " ) " -o " ${guest_inface} " -m ndmmark --ndmmark ${MARK_NUM} -j MASQUERADE
205
206
# Под вопросом ?
206
- ip4tables POSTROUTING -t nat -s " $( guest_net " ${guest_inface} " ) " -o " ${guest_inface} " -m ndmmark --ndmmark ${MARK_NUM} -j SNAT --to-source $( inface_guest_gw4 " ${guest_inface} " )
207
+ # ip4tables POSTROUTING -t nat -s "$(get_guest_net "${guest_inface}")" -o "${guest_inface}" -m ndmmark --ndmmark ${MARK_NUM} -j SNAT --to-source $(inface_guest_gw4 "${guest_inface}")
207
208
208
209
} & > /dev/null
209
210
rules_masq=$( ip4save | grep " \-j MASQUERADE" | grep " ${guest_inface} " )
210
- rules_dns=$( ip4save | grep " ${guest_inface} " | grep DNAT | grep 53)
211
- if [ -z " ${rules_dns} " ] || [ -z " ${rules_masq} " ] ; then
211
+ if [ -z " ${rules_masq} " ] ; then
212
212
error " ${IPv4} Возникла ошибка при маркировке гостевого трафика ${guest_inface} [$( guest_net " ${guest_inface} " ) ] для VPN."
213
213
fi
214
214
fi
0 commit comments