Linux 中安裝redis 外網可訪問
在 中安裝了redis 服務。在 Windows 中安裝了 xampp 環境,以供 PHP 執行。 |
PHP 程式碼如下:
connect('192.168.1.4', 6379); $redis->set('tag', 'hello'); echo 'name:', $redis->get('tag'); ?>
執行以上程式碼時,報錯如下:
Fatal error: Uncaught exception ‘RedisException’ with message ‘Redis server went away’ in xxxx RedisException: Redis server went away in xxxxxx
錯誤的原因很簡單,就是沒有連線上 redis 服務,由於 redis 採用的安全策略,預設會只准許本地訪問。需要透過簡單配置,完成允許外網訪問。
修改 redis 的配置檔案,將所有 bind 資訊全部遮蔽。
# bind 192.168.1.100 10.0.0.1 # bind 192.168.1.8 # bind 127.0.0.1
修改完成後,需要重新啟動 redis 服務。
修改 Linux 的防火牆(iptables),開啟你的 redis 服務埠,預設是 6379。
-A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT …… -A INPUT -j REJECT –reject-with icmp-host-prohibited
請注意,一定要將 redis 的防火牆配置放在 REJECT 的前面。然後執行 service iptables restart。
至此,訪問剛剛上面的程式碼,就能夠連結到 redis 服務,並且能夠正確顯示了。
翻看網上的文章,此處多翻譯為"指定 redis 只接收來自於該 IP 地址的請求,如果不進行設定,那麼將處理所有請求,在生產環境中最好設定該項"。這種解釋會 totally 搞糊塗初學者,甚至是錯誤的。該處的英文原文為:
# If you want you can bind a single interface, if the bind option is not # specified all the interfaces will listen for incoming connections. # bind 127.0.0.1
該處說明 bind 的是interface,也就是說是網路介面。伺服器可以有一個網路介面(通俗的說網路卡),或者多個。打個比方說機器上有兩個網路卡,分別為 192.168.205.5 和 192.168.205.6,如果 bind 192.168.205.5,那麼只有該網路卡地址接受外部請求,如果不繫結,則兩個網路卡口都接受請求。
OK,不知道講清楚沒有,在舉一個例子。在我上面的實驗過程中,我是將bind項註釋掉了,實際上我還有一種解決方案。由於我redis伺服器的地址是 192.168.1.4 。如果我不註釋bind項,還有什麼辦法呢?我可以做如下配置:
# bind 192.168.1.4
這裡很多人會誤以為繫結的ip應該是請求來源的ip。其實不然,這裡應該繫結的是你redis伺服器本身接受請求的ip。
原文地址:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2709692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ubuntu mysql 安裝和外網訪問配置UbuntuMySql
- centos7 安裝 ElasticSearch 配置外網訪問CentOSElasticsearch
- 外網訪問內網LINUX內網Linux
- Linux中安裝RedisLinuxRedis
- 設定linux 可以訪問外網Linux
- Redis 入門 - 0(安裝、遠端訪問)Redis
- linux中安裝JDK linux中安裝Tomcat linux中安裝Mysql 及故障解析 linux系統安裝redisLinuxJDKTomcatMySqlRedis
- 2.0 Elasticsearch7.1 ES在Linux下安裝問題處理(外網訪問良心優化版)ElasticsearchLinux優化
- Oracle外網訪問Oracle
- Holer實現外網ssh訪問內網linux內網Linux
- 如何從外網訪問內網Linux系統?內網Linux
- 如何禁止外來裝置訪問企業內網和外網?內網
- 使用ngrok讓你的本地Web程式外網可訪問Web
- 本地網站外網訪問網站
- 外網訪問本地sqlserverSQLServer
- redis安裝(linux)RedisLinux
- linux 安裝redisLinuxRedis
- Linux Redis安裝LinuxRedis
- Docker中mysql映象的使用和外網訪問DockerMySql
- Elasticsearch 開放外網訪問Elasticsearch
- ubuntu 中安裝 RedisUbuntuRedis
- Linux下安裝RedisLinuxRedis
- Linux 下安裝 RedisLinuxRedis
- 使用Holer外網SSH訪問內網/區域網Linux系統內網Linux
- linux安裝和配置 mysql、redis 過程中遇到的問題記錄LinuxMySqlRedis
- Higress 基於自定義外掛訪問 RedisRedis
- vnc viewer透過外網訪問,vnc viewer透過外網訪問8個步驟VNCView
- Holer實現Oracle外網訪問Oracle
- 外網訪問MySQL資料庫MySql資料庫
- 樹莓派外網ssh訪問樹莓派
- Linux 安裝 Redis4.0.6LinuxRedis
- Redis安裝單機(Linux)RedisLinux
- linux 上 redis的安裝LinuxRedis
- linux centos下安裝redisLinuxCentOSRedis
- Linux下安裝配置RedisLinuxRedis
- linux離線安裝redisLinuxRedis
- 騰訊雲輕量伺服器通過Docker搭建外網可訪問連線的redis5.x叢集伺服器DockerRedis
- 【轉】VMware10中的Linux系統利用NAT網路連線方式訪問外網配置Linux