Всем привет. В общем, долгая дорога по настройке sing-box завершена, если кому интересно напишу список команд и конфиг файл(все заворачиваем в tun, но ru,рф ходят напрямую) пришлю :
Установка Sing-box:
1) pkg install bash
2) cd /tmp
3) fetch https://github.com/Opn...g-box.for.OPNsense.zip
4) unzip sing-box.for.OPNsense.zip
5) chmod +x install.sh
6) bash ./install.sh
7) На этом этапе, должен появитья в opnsense в VPN "Proxy Suite", если нет, то просто перезагрузите страницу".
Настройка конфига sing-box:
1) Можно через веб интерфейс, в VPN > "Proxy Suite" скопировать и вставить мой конфиг (в моём конфиге нужно будет добавить информацию о своём ключе) и нажать на иконку дискеты, тем самым сохранив.
2) Вариант через терминал, просто открываем через редактор (vi,vim,nano) файл config.json по пути /usr/local/etc/sing-box/config.json, ну и удаляем из него все что написал дядюшка Ли и вставляем мой конфиг (в моём конфиге нужно будет добавить информацию о своём ключе) и сохраняем.
3) Перезапускаем сервис командой service sing-box restart
4) Проверям, что в VPN>Proxy Suite нет ошибок (во втором окне будет лог).
#
Мой конфиг
Настройка TUN интерфейса:
1) Переходи Interfaces → Assignments, проверям что интерфейс добавлен, если нет, то добавляем (лучше всего назвать его так же как он и отображается).
2) Добавляем шлюз для TUN, для этого переходим в System>Gateways>Configuration, наживаем на + и добавляем шлюз Name:GW_tun_3000, Interface: tun_3000(ну или как вы назвали), IP Address:172.19.0.1 и ставим галочку напротив Far Gateway.
3) "Оно не обязательно, но мало ли..." Переходим в Interface>tun_3000(ну или как вы назвали), включаем интерфейс ставим галочку напротив Enable Interface в пункте IPv4 Configuration Type выбираем Static IPv4 и в самом низу в IPv4 address вводим 172.19.0.1 маска 24 (по умолчанию стоит 32).
4) Важно предоставить DNS этому интерфейсу, т.к. у меня настроен Unbound DNS, то у меня поумолчанию оно уже настроено.
Настройка Firewall
В общем, тут мы будем настраивать что бы трафик пошёл через итерфейс tun_3000 для определенного VLAN или просто для интерфеса (не знаю как он у вас называется, возможно просто LAN), так что попытайтесь уследить за руками.
1) Переходим в Firewall>NAT>Outbound и там в Mode ввыбираем Hybrid outbound NAT rule generation(automatically generated rules are applied after manual rules) и сохраняем.
2) Далее настроим правило, перейдя в Firewall>Rules выбираем интерфейс, который требуется завернуть в tun_3000, для примера...LAN, добавляем новое правило нажав на "+" и выбираем Action:Pass, Interface:LAN, Protocol:TCP/UDP, Source:LAN net, Gateway:GW_tun_3000 и сохраняем.
3) Нужно поднять данное правило наверх (но ниже разрешающего правила доступа в интернет), сохраняем изменения.
4) Проверяем, что если зайти на 2ip.ru, то ваш ip будет провайдера, а если перейти на 2ip.me то ip будет вашего VPS.
Установка Sing-box:
1) pkg install bash
2) cd /tmp
3) fetch https://github.com/Opn...g-box.for.OPNsense.zip
4) unzip sing-box.for.OPNsense.zip
5) chmod +x install.sh
6) bash ./install.sh
7) На этом этапе, должен появитья в opnsense в VPN "Proxy Suite", если нет, то просто перезагрузите страницу".
Настройка конфига sing-box:
1) Можно через веб интерфейс, в VPN > "Proxy Suite" скопировать и вставить мой конфиг (в моём конфиге нужно будет добавить информацию о своём ключе) и нажать на иконку дискеты, тем самым сохранив.
2) Вариант через терминал, просто открываем через редактор (vi,vim,nano) файл config.json по пути /usr/local/etc/sing-box/config.json, ну и удаляем из него все что написал дядюшка Ли и вставляем мой конфиг (в моём конфиге нужно будет добавить информацию о своём ключе) и сохраняем.
3) Перезапускаем сервис командой service sing-box restart
4) Проверям, что в VPN>Proxy Suite нет ошибок (во втором окне будет лог).
#
Мой конфиг
Code Select
{
"log": {
"disabled": false,
"level": "info",
"timestamp": true
},
"experimental": {
"clash_api": {
"external_controller": "0.0.0.0:9090",
"external_ui": "/usr/local/etc/sing-box/ui",
"default_mode": "Rule"
},
"cache_file": {
"enabled": true,
"path": "/usr/local/etc/sing-box/cache.db"
}
},
"inbounds": [
{
"type": "tun",
"tag": "tun-in",
"interface_name": "tun_3000",
"mtu": 1450,
"address": ["172.19.0.0/24"],
"auto_route": false,
"strict_route": false,
"endpoint_independent_nat": false,
"stack": "system"
}
],
"outbounds": [
{
"tag": "select",
"type": "selector",
"default": "auto",
"outbounds": ["auto"]
},
{
"tag": "auto",
"type": "urltest",
"outbounds": ["vless-main"],
"url": "https://www.gstatic.com/generate_204",
"interval": "1m",
"tolerance": 50
},
{
"tag": "vless-main",
"type": "vless",
"server": "АДРЕС САЙТА VPS",
"server_port": 443,
"uuid": "ID Пользовательского ключа",
"flow": "xtls-rprx-vision",
"packet_encoding": "xudp",
"tls": {
"enabled": true,
"server_name": "www.google.com",
"utls": {
"enabled": true,
"fingerprint": "chrome"
},
"reality": {
"enabled": true,
"public_key": "ПУБЛИЧНЫЙ КЛЮЧ",
"short_id": "НУ И SID"
}
}
},
{
"tag": "direct",
"type": "direct"
}
],
"route": {
"rules": [
{
"action": "sniff",
"inbound": "tun-in",
"sniffer": ["http", "tls", "quic"]
},
{
"action": "route",
"rule_set": ["GeoSite-Private"],
"outbound": "direct"
},
{
"action": "route",
"domain_keyword": ["yandex", "yastatic"],
"outbound": "direct"
},
{
"action": "route",
"domain": [
"vk.com",
"habr.com",
"avito.ru",
"4pda.to",
"aliexpress.ru",
"telegram.org",
"t.me",
"ytimg.com",
"cdninstagram.com"
],
"domain_suffix": [
".ru",
".рф",
".xn--p1ai"
],
"ip_cidr": [
"157.240.0.0/16",
"169.45.0.0/16",
"169.57.0.0/16",
"192.168.0.0/16",
"172.16.0.0/16",
"10.0.0.0/8"
],
"outbound": "direct"
},
{
"action": "route",
"process_name": ["transmission", "steam", "codium"],
"outbound": "direct"
},
{
"action": "reject",
"rule_set": ["Category-Ads"]
}
],
"rule_set": [
{
"tag": "Category-Ads",
"type": "remote",
"url": "https://testingcf.jsde...e/category-ads-all.srs",
"format": "binary",
"download_detour": "direct"
},
{
"tag": "GeoSite-Private",
"type": "remote",
"url": "https://testingcf.jsde...eo/geosite/private.srs",
"format": "binary",
"download_detour": "direct"
}
],
"final": "select",
"auto_detect_interface": false
},
"dns": {
"servers": [
{
"tag": "local",
"type": "udp",
"server": "9.9.9.9"
}
],
"final": "local"
}
}
Настройка TUN интерфейса:
1) Переходи Interfaces → Assignments, проверям что интерфейс добавлен, если нет, то добавляем (лучше всего назвать его так же как он и отображается).
2) Добавляем шлюз для TUN, для этого переходим в System>Gateways>Configuration, наживаем на + и добавляем шлюз Name:GW_tun_3000, Interface: tun_3000(ну или как вы назвали), IP Address:172.19.0.1 и ставим галочку напротив Far Gateway.
3) "Оно не обязательно, но мало ли..." Переходим в Interface>tun_3000(ну или как вы назвали), включаем интерфейс ставим галочку напротив Enable Interface в пункте IPv4 Configuration Type выбираем Static IPv4 и в самом низу в IPv4 address вводим 172.19.0.1 маска 24 (по умолчанию стоит 32).
4) Важно предоставить DNS этому интерфейсу, т.к. у меня настроен Unbound DNS, то у меня поумолчанию оно уже настроено.
Настройка Firewall
В общем, тут мы будем настраивать что бы трафик пошёл через итерфейс tun_3000 для определенного VLAN или просто для интерфеса (не знаю как он у вас называется, возможно просто LAN), так что попытайтесь уследить за руками.
1) Переходим в Firewall>NAT>Outbound и там в Mode ввыбираем Hybrid outbound NAT rule generation(automatically generated rules are applied after manual rules) и сохраняем.
2) Далее настроим правило, перейдя в Firewall>Rules выбираем интерфейс, который требуется завернуть в tun_3000, для примера...LAN, добавляем новое правило нажав на "+" и выбираем Action:Pass, Interface:LAN, Protocol:TCP/UDP, Source:LAN net, Gateway:GW_tun_3000 и сохраняем.
3) Нужно поднять данное правило наверх (но ниже разрешающего правила доступа в интернет), сохраняем изменения.
4) Проверяем, что если зайти на 2ip.ru, то ваш ip будет провайдера, а если перейти на 2ip.me то ip будет вашего VPS.
"