Если есть определённый список сайтов, то самым правильным решением будет сначала разрешить имена этих сайтов в определённый адрес-лист. Для этой цели нашёл замечательный скрипт.
:local DNSList {"example.com";"non-exist.domain.net";"server.local";"hostname"}
:local ListName "MyList"
:local DNSServers ( [ip dns get dynamic-servers], [ip dns get servers ], 8.8.8.8 )
:foreach addr in $DNSList do={
:foreach DNSServer in $DNSServers do={
:do {:resolve server=$DNSServer $addr} on-error={:log debug ("failed to resolve $addr on $DNSServer")}
}
}
/ip firewall address-list remove [find where list~$ListName]
/ip dns cache all
:foreach i in=[find type="A"] do={
:local bNew true
:local cacheName [get $i name]
:local match false
:foreach addr in=$DNSList do={
:if (:typeof [:find $cacheName $addr] >= 0) do={
:set $match true
}
}
:if ( $match ) do={
:local tmpAddress [/ip dns cache get $i address]
:if ( [/ip firewall address-list find ] = "") do={
:log debug ("added entry: $[/ip dns cache get $i name] IP $tmpAddress")
/ip firewall address-list add address=$tmpAddress list=$ListName comment=$cacheName
} else={
:foreach j in=[/ip firewall address-list find ] do={
:if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
:set bNew false
}
}
:if ( $bNew ) do={
:log debug ("added entry: $[/ip dns cache get $i name] IP $tmpAddress")
/ip firewall address-list add address=$tmpAddress list=$ListName comment=$cacheName
}
}
}
}
Взято
отсюда
В скрипте в первой строчке укажите список доменных имён, которые необходимо заворачивать на прокси.
После того, как у вас есть готовый адрес-лист, добавляйте правило в НАТ примерно следующего вида:
/ip firewall nat add action=dst-nat chain=dstnat comment=MyProxy disabled=no dst-address-list=MyList dst-port=80,443 \
protocol=tcp to-addresses=<адрес прокси>
При необходимости меняйте порты в правиле. Также можно добавить в правило NAT
src-address=!<ip-адрес вашего прокси>
, если прокси находится в той же сети, что и другие домашние компы. Если он где-то вне домашней сети, это не требуется.
Не забудьте добавить скрипт в scheduler, чтобы он периодически запускался (чаще, чем ТТЛ днс-записей).