Разрешить все входящие соединения ICMP внутренней сети iptables

Это не ответ на ваш вопрос, а несколько предложений от другого автора сценария:

  • Используйте $ () вместо обратных кавычек, не используйте их оба
  • Условный отступ операторов if
  • Удалите ненужное использование $ ()

Последовательность и простые правила помогут вам отлаживать и поддерживать сценарии в долгосрочной перспективе ...

#!/bin/bash

LOGIN="email"
TOKEN="token"
DOMAIN_ID="domain"
RECORD_ID="record"
IP=$(curl -s http://icanhazip.com/)

OUTPUT=$(
curl -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "X-DNSimple-Domain-Token: $TOKEN" \
    -X "PUT" \
    -i "https://api.dnsimple.com/v1/domains/$DOMAIN_ID/records/$RECORD_ID" \
    -d "{\"record\":{\"content\":\"$IP\"}}"
)

if ! echo "$OUTPUT" | grep -q "(Status:\s200)"; then
    echo "match"
    echo "$OUTPUT" | grep -oP '(?<="message":")(.[^"]*)' >> /home/ddns/ddns.log
    echo "$OUTPUT"| grep -P '(Status:\s[0-9]{3}\s)' >> /home/ddns/ddns.log
fi
1
29.03.2019, 12:23
1 ответ

Если вы хотите разрешить это для всех, попробуйте указать маску после IP-адреса.

из:

iptables -A INPUT -p icmp -s 0.0.0.0 -d 0.0.0.0 -j ACCEPT
от

до:

iptables -A INPUT -p icmp -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT

Мне это помогло.

3
27.01.2020, 23:41

Теги

Похожие вопросы