我有一個正在運行的彈性IP地址的EC2服務器,它正在愉快地運行memcached,beanstalkd分別在端口11211和11300偵聽外部IP。我用服務器的AMI來升級大小,當服務器重新啓動時,memcached和beanstalkd都沒有運行。因爲這是init.d重新啓動,但是從命令行運行的守護進程beanstalkd運行memcached。將memcached和beanstalk綁定到EC2實例上的外部IP
然而,幾個小時後,我似乎無法弄清楚如何讓他們再次運行。
memcached的配置文件上寫着:
# Default connection port is 11211
-p 11211
# Specify which IP address to listen on. The default is to listen on all IP addresses
-l <EXTERNAL IP ADDRESS>
當我嘗試和運行memcached作爲root的命令行:我得到
memcached -d -m 1024 -u root -l <EXTERNAL IP ADDRESS> -v -p 11211
:
bind(): Cannot assign requested address
failed to listen on TCP port 11211: Cannot assign requested address
然而,當我看看netstat,沒有任何東西已經綁定到那個端口上:
netstat -ant | grep LIST
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
如果我grep進程列表,沒有其他的memcached運行。
iptables的報告如下:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp spt:11300 state ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp spt:11211 state ESTABLISHED
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
EC2實例使用相同的安全組作爲原始服務器,因此所需的端口是開放的。
最後,可能暗示ifconfig IP地址與彈性IP地址不同。如果我嘗試監聽inet增加的內容:Bcast:memcached服務運行並綁定,但是我似乎無法通過彈性IP訪問memcached。
我必須對你做一些愚蠢和明顯的事情。謝謝你的幫助。