bot
9 months ago
2 changed files with 106 additions and 4 deletions
@ -0,0 +1,97 @@
@@ -0,0 +1,97 @@
|
||||
====== Смена IP-адреса в Yggdrasil при старте сервиса ====== |
||||
|
||||
Захотелось внести в [[yggdrasil:yggdrasil|Yggdrasil]] немножко анонимности. Если у вас на ПК нет никаких сервисов, привязанных к IP-адресу то его смена при каждой загрузке может не помешать. |
||||
|
||||
Пример будет приведен для сервиса yggdrasil который управляется через systemctl. |
||||
|
||||
===== Скрипт ===== |
||||
|
||||
Сам скрипт очень прост. |
||||
<code> |
||||
sed -i "s/$(cat \/etc\/yggdrasil.conf | grep 'PrivateKey')/$(yggdrasil -genconf | grep 'PrivateKey')/" /etc/yggdrasil.conf |
||||
</code> |
||||
|
||||
Разберем этот скрипт. |
||||
|
||||
Ищем строку с приватным ключом: |
||||
<code> |
||||
cat \/etc\/yggdrasil.conf | grep 'PrivateKey' |
||||
</code> |
||||
|
||||
Генерируем новый конфиг с новым приватным ключом и грепаем строку с ключом: |
||||
<code> |
||||
yggdrasil -genconf | grep 'PrivateKey' |
||||
</code> |
||||
|
||||
Далее подставляем результаты в sed. |
||||
|
||||
===== systemctl ===== |
||||
|
||||
Теперь нам нужно поместить этот скрпит в файл сервиса yggdrasil. |
||||
|
||||
Отредактируем файл сервиса yggdrasil: |
||||
|
||||
<code> |
||||
systemctl edit yggdrasil.service |
||||
</code> |
||||
|
||||
У вас в редакторе откроется подобный текст: |
||||
<code> |
||||
### Editing /etc/systemd/system/yggdrasil.service.d/override.conf |
||||
### Anything between here and the comment below will become the contents of the drop-in file |
||||
|
||||
|
||||
### Edits below this comment will be discarded |
||||
... |
||||
</code> |
||||
|
||||
Добавьте наш override: |
||||
<code> |
||||
### Editing /etc/systemd/system/yggdrasil.service.d/override.conf |
||||
### Anything between here and the comment below will become the contents of the drop-in file |
||||
|
||||
[Service] |
||||
ExecStartPre=/bin/bash -c '''sed -i "s/$(cat \/etc\/yggdrasil.conf | grep 'PrivateKey')/$(yggdrasil -genconf | grep 'PrivateKey')/" /etc/yggdrasil.conf''' |
||||
|
||||
### Edits below this comment will be discarded |
||||
|
||||
</code> |
||||
|
||||
Сохраните изменения и выполните команду для обновления файлов конфигураций: |
||||
<code> |
||||
systemctl daemon-reload |
||||
</code> |
||||
|
||||
===== Проверка ===== |
||||
|
||||
Теперь проверим, что наш override для файла сервиса применился. Выполним команду: |
||||
<code> |
||||
systemctl show --no-pager yggdrasil.service | grep -i 'ExecStartPre=' |
||||
</code> |
||||
|
||||
В выводе будет определение нашей команды, которая записана через override, и основной команды, которая была по умолчанию. |
||||
<code> |
||||
ExecStartPre={ path=/sbin/modprobe ; argv[]=/sbin/modprobe tun ; ignore_errors=yes ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 } |
||||
ExecStartPre={ path=/bin/bash ; argv[]=/bin/bash -c sed -i "s/$(cat \/etc\/yggdrasil.conf | grep PrivateKey)/$(yggdrasil -genconf | grep PrivateKey)/" /etc/yggdrasil.conf ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 } |
||||
</code> |
||||
|
||||
Теперь проверим, что IP-адрес меняется, посмотрим наш текущий адрес: |
||||
<code> |
||||
ip -br a | grep tun0 |
||||
tun0 UNKNOWN 202:f108:1d85:56cb:5ed1:5edc:7a5:df05/7 |
||||
</code> |
||||
|
||||
Перезапустим сервис: |
||||
<code> |
||||
systemctl restart yggdrasil.service |
||||
</code> |
||||
|
||||
Проверим еще раз наш IP-адрес: |
||||
<code> |
||||
ip -br a | grep tun0 |
||||
tun0 UNKNOWN 200:babe:dada:ffff:5ed1:5edc:7a5:ffff/7 |
||||
</code> |
||||
|
||||
Адрес изменился. |
||||
|
||||
~~DISCUSSION~~ |
Loading…
Reference in new issue