Mogę pingować ponga Redis na serwerze:
# redis-cli ping
PONG
Ale zdalnie mam problemy:
$ src/redis-cli -h REMOTE.IP ping
Could not connect to Redis at REMOTE.IP:6379: Connection refused
W config mam standardowy port:
# Accept connections on the specified port, default is 6379.
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379
Więc może powinienem otworzyć port 6379 na zdalnym komputerze Ubuntu? Jak mam to zrobić?
Odpowiedzi:
Czy ustawiłeś opcję bind, aby umożliwić zdalny dostęp na serwerze redis?
Przed (plik
/etc/redis/redis.conf
)Po
i uruchom,
sudo service redis-server restart
aby zrestartować serwer. Jeśli to nie jest problem, możesz sprawdzić zapory, które mogą blokować dostęp.Ważne: jeśli nie używasz zapory (iptables, ufw ..) do kontrolowania, kto łączy się z używanym portem, KAŻDY może połączyć się z tą instancją Redis. Bez korzystania z Redis
AUTH
oznacza to, że każdy może uzyskać dostęp / zmienić / usunąć Twoje dane. Bądź bezpieczny!źródło
bind 0.0.0.0
po napisiebind 127.0.0.1
. Zrestartowano redis. A teraz może łączyć się zdalnie.bind 0.0.0.0
samotnie vsbind 127.0.0.1 0.0.0.0
W moim przypadku musiałem wykonać następujące czynności:
1- Komentarz
bind 127.0.0.1
2- Zmień
protected-mode
nano
3- Chroń mój serwer za pomocą
iptables
( https://www.digitalocean.com/community/tutorials/how-to-implement-a-basic-firewall-template-with-iptables-on-ubuntu-14-04 )źródło
Krótka uwaga, że zrobienie tego bez dalszego zabezpieczania serwera Redis nie jest dobrym pomysłem, ponieważ może wystawić cię na atak. Pamiętaj, aby również zaimplementować AUTH lub w inny sposób to zabezpieczyć. Szczegółowe informacje można znaleźć pod adresem http://redis.io/topics/security .
źródło
1- Komentarz w powiązaniu 127.0.0.1
2- ustaw requirepass yourpassword
następnie sprawdź, czy firewall zablokował twój port
iptables -L -n
usługa iptables zatrzymuje się
źródło
Otwórz $ REDIS_HOME / redis.conf, odkomentuj
requirepass -YOUR-PASSWORD-HERE-
i zapisz swoje hasło w określonych wierszach.Zaloguj się do redis za pomocą redis-cli i zweryfikuj swoje hasło w bazie danych za pomocą
auth -YOUR-PASSWORD-HERE-
polecenia.Wyłącz tryb chroniony, zmieniając jego ciąg w $ REDIS_HOME / redis.conf na
protected-mode no
.Wyszukaj wszystkie wartości portów wiązania i skomentuj je wszystkie. Po prostu dodaj
bind 0.0.0.0
do pliku $ REDIS_HOME / redis.conf.Wyłącz zaporę lub otwórz port Redis.
Zacznij redis za pomocą
./redis-server $REDIS_HOME/redis.conf
.Sprawdź konfigurację za pomocą
./redis-cli -h -YOUR-IP- -a -YOUR-PASSWORD-HERE-
../redis-cli -h -YOUR-IP- ping
.źródło
Otwórz plik w lokalizacji
/etc/redis.conf
Skomentować
bind 127.0.0.1
Uruchom ponownie Redis:
Wyłącz Firewalld:
Zatrzymaj Firewalld:
Więc spróbuj:
źródło
Krótka uwaga, że jeśli używasz instancji AWS ec2, jest jeszcze jeden dodatkowy krok, który moim zdaniem jest również obowiązkowy. Przegapiłem krok 3 i zajęło mi cały dzień wymyślenie dodania reguły ruchu przychodzącego do grupy bezpieczeństwa
Krok 1 (jak poprzednio): w zmianie redis.conf powiąż 127.0.0.1 z bind 0.0.0.0
Krok 2 (jak poprzednio): w swoim redis.conf zmień tryb chroniony tak na tryb chroniony nie
ważne dla instancji Amazon Ec2:
Krok 3: Na obecnym komputerze ec2 przejdź do grupy bezpieczeństwa. dodaj regułę przychodzącą dla niestandardowego TCP z portem 6379 i wybierz opcję „używaj z dowolnego miejsca”.
źródło
źródło
Wiązanie i tryb chroniony są podstawowymi krokami. Ale jeśli ufw jest włączony, będziesz musiał zezwolić na port redis w ufw.
ufw status
jeśliStatus: active
następnie zezwól na redis-portufw allow 6379
vi /etc/redis/redis.conf
bind 127.0.0.1
nabind 0.0.0.0
protected-mode yes
naprotected-mode no
źródło