1С за NAT`ом.
Например у нас есть сервер (linux) на котором установлен 1С сервер. Имя хоста сервера, например, SRV01, его ip-адрес 192.168.1.10.
Из локальной сети все благополучно работает. Задача - "выпустить" 1С сервер в интернет через NAT.
1. Настройка MikroTik для проброса портов.
Нам необходимо пробросить диапазон tcp-портов 1540-1590 к нашему серверу.
1. Добавляем маркер портов:
/ip firewall mangle
add action=mark-packet chain=prerouting comment="Connect to 1S Server" dst-port=1540-1590 in-interface=ether1 new-packet-mark=1s-connection passthrough=yes protocol=tcp
2. Перенаправляем пакеты с нашим маркером на 1С сервер:
/ip firewall nat
add action=netmap chain=dstnat comment="Connect to 1S Server" packet-mark=1s-connection to-addresses=192.168.1.10
2. Устранение проблемы "Этот хост неизвестен"
При попытке извне подключиться к базе 1С клиентом, скорее всего возникнет ошибка
"Ошибка при выполнении операции с информационной базой server_addr=SRV01 descr=11001(0x00002AF9): Этот хост неизвестен. line=581 file=srccoresrcNetworking.cpp"
Причина в том, что наш комп из интернета не знает о существовании хоста SRV01. Можно решить эту проблему порописав SRV01 в список хостов. Например под Windows в файл C:\Windows\System32\drivers\etc\hosts следует добавить строку:
123.45.67.89 SRV01 ; где 123.45.67.89 - наш белый ip адрес.
Но если у нас много клиентов, то всем внести подобные изменения проблематично, тем более, что для редактирования C:\Windows\System32\drivers\etc\hosts нужно обладать правами администратора.
Выход следующий. Создаем для нашего внешнего ip адреса (123.45.67.89) доменнеое имя, например server1s.mydomain.com
1. Переименовываем наш сервер:
hostname server1s.mydomain.com
2. Прописываем server1s.mydomain.com в файлах /etc/hostname И /etc/hosts
3. Перезагружаемся.
4. Проверяем имя хоста "uname -n"
5. Останавливаем 1С сервер
systemctl stop srv1cv8-8.3.22.2175@default.service
6. Во всех файлах домашней директории 1С рекурсивно меняем все "SRV01" на "server1s.mydomain.com"
find /home/usr1cv8/ -type f -print0 | xargs -0 sed -i 's/SRV01/server1s.mydomain.com/g'
7. Запускаем 1С сервер
systemctl start srv1cv8-8.3.22.2175@default.service
Теперь все внешние клиенты благополучно подключатся, а вот из локальной сети возникнут проблемы с "Этот хост неизвестен".
Для решения этой проблемы либо на каждом клиенте в C:\Windows\System32\drivers\etc\hosts, либо на локальном DNS-сервере прописываем
192.168.1.10 server1s.mydomain.com