在memcached.conf
我有:
# -l 127.0.0.1
# -p 11211
我的目的是禁用任何 TCP 或 UDP 绑定,因为我不通过 unix 套接字以外的任何方式使用该服务。
这样的配置能达到我想要的效果吗?
答案1
取决于memcached的版本;作为-l 127.0.0.1 -p 12111
唯一的选项,memcached 将侦听 TCP 和 UDP 端口 11211,尽管仅侦听 127.0.0.1。
这是禁用任何 TCP 或 UDP 绑定并将权限设置为可供系统上的任何用户使用的最典型方法。如果您只希望特定用户访问套接字,则可以通过其他方式对后者进行微调。
-s /tmp/memcached.sock
-a 666
每人 memcached(1) ...
-a <perms>
Permissions (in octal format) for Unix socket created with -s option.
-s <file>
Unix socket path to listen on (disables network support).
...请注意,无论所有其他选项如何,如果-s
指定,它将禁用所有网络支持(TCP 和 UDP),并且不会绑定到任何接口。指定 有点误导-l 127.0.0.1 ... -s /tmp/memcached.sock
,即使它会接受这些选项。
禁用 memcached 网络支持的另一种方法是告诉它侦听端口 0。
-p <num>
Listen on TCP port <num>, the default is port 11211.
-U <num>
Listen on UDP port <num>, the default is port 11211, 0 is off.
在最新版本中,-U 的默认值为 0(关闭)。
在旁边;虽然手册页没有明确说明,-p 0
但也会禁用 TCP,例如-l 127.0.0.1 -p 0 -U 0
可以工作,尽管它毫无意义,因为除非指定套接字路径,否则它实际上无法使用。