Ste*_*uet 5 acl virtualbox virtual-machine freeswitch node.js
我有一台运行在一台服务器上的FS服务器,在一台远程服务器上,我有一个Node JS实例,它使用node_esl(用于FS的Node JS事件套接字库)控制它。
每次向服务器发送请求时,都会出现以下错误:
[WARNING] mod_event_socket.c:2603 IP ::ffff:192.168.59.3 Rejected by acl "loopback.auto"
Run Code Online (Sandbox Code Playgroud)
FS服务器具有2个接口:一个使用公共IP,第二个在专用网络(192.168.59.0/24)上。
我检查了acl.conf.xml文件和event_socket.con.xml,到目前为止,我看不到任何特别之处。
最后一件事:这是一个开发环境,FS正在VM(VirtualBox)中运行。用于VM的接口是192.168.59.103,而GW是192.168.59.3,因此,如果不是ACL问题(或两者都不是),则可能是NAT问题。
您对ACL配置应该有什么想法?
您必须转到FreeSWITCH / conf / autoload_configs / event_socket.conf.xml,然后进入并编辑acl行:
<param name="apply-inbound-acl" value="loopback.auto"/>
您必须编写类似于my_acl的内容,而不是loopback.auto
之后,您必须转到FreeSWITCH / conf / autoload_configs / acl.conf.xml,然后在其中编写如下内容:
<list name="my_acl" default="deny">
<node type="allow" cidr="xxx.xxx.xxx.xxx/32"/>
<node type="allow" cidr="xxx.xxx.xxx.0/24"/>
</list>
Run Code Online (Sandbox Code Playgroud)
之后,转到fs_cli和tape命令:
reloadacl
请享用!
编辑:
确保以下内容:
<list name="my_acl" default="deny">
<node type="allow" cidr="xxx.xxx.xxx.xxx/32"/>
<node type="allow" cidr="xxx.xxx.xxx.0/24"/>
</list>
Run Code Online (Sandbox Code Playgroud)
变成:
<list name="my_acl" default="deny">
<node type="allow" cidr="xxx.xxx.xxx.xxx/32"/>
<node type="allow" cidr="xxx.xxx.xxx.0/24"/>
<node type="allow" cidr="192.168.42.42/32"/>
<node type="allow" domain="$${domain}"/>
<!-- this allow fs_cli to connect else fs_cli wont work --!>
<node type="allow" cidr="127.0.0.1/32" />
</list>
Run Code Online (Sandbox Code Playgroud)
我找到了原因:ACL 的配置并不是很好。使用的方法没有为 event_socket 打开正确的连接。因此,Event_Socket 要么打开仅供本地使用,要么仅供外部使用。必须重新创建一个新的 ACL,并打开本地访问(如果您想使用 fs_cli,这是必需的)并添加控制服务器的 IP。
感谢您关于 IPv6 的建议,我之前测试过它,发现它对我的“问题”没有影响
| 归档时间: |
|
| 查看次数: |
3555 次 |
| 最近记录: |