2015-07-12 39 views
2

我有一臺FS服務器運行在一臺服務器和遠程服務器上我有一個Node JS實例使用node_esl(一個用於FS的Node JS事件套接字庫)來控制它。遠程事件套接字的Freeswitch ACL配置

每次我發送給我有以下錯誤向服務器發出請求:

[WARNING] mod_event_socket.c:2603 IP ::ffff:192.168.59.3 Rejected by acl "loopback.auto" 

FS服務器有2個接口:一個是使用公網IP,第二個是私有網絡( 192.168.59.0/24)。

我檢查了acl.conf.xml文件和event_socket.con.xml,到目前爲止我沒有看到任何特別的東西。

最後一件事:這是一個開發環境,FS正在虛擬機(VirtualBox)中運行。用於VM的接口是192.168.59.103,GW是192.168.59.3 因此,如果不是ACL問題(或兩者),這可能是NAT問題。

你對ACL配置應該是什麼有什麼概念嗎?

回答

3

我發現原因: ACL配置不是很好。使用的那個沒有打開event_socket的正確連接。因此,任何一個Event_Socket都只爲本地使用打開或僅供外部使用。 必須重新創建一個新的ACL,並打開本地訪問權限(如果要使用fs_cli,則必需)並添加控制服務器的IP。

THX您針對IPv6的建議,我測試了它前面,發現它有對我的「問題」

+0

你有一份你所要做的事。我處於相同的位置。 –

+0

@ TheHumbleRat No.我搬到了另一個項目,並且無法再訪問這個項目。但它是一個IPv6配置問題 –

0

這可能是因爲IPv6的問題的發生: https://freeswitch.org/jira/browse/FS-7638

作爲一種變通方法,您可以嘗試改變從:: event_socket綁定地址在autoload_configs到192.168.59.x/event_socket.conf.xml

+0

不,我測試了這個,但這不是這個問題的根本原因。我在我的評論中解釋過,在ACL配置中找到它。 –

1

有一個關於如何得到它在這裏工作的一些信息沒有影響: https://wiki.freeswitch.org/wiki/Mod_event_socket#Configuration

後有點試驗和錯誤,我不得不這樣做才能擺脫錯誤的是以下幾點:

  1. 打開FreeSWITCH的/ conf目錄/ autoload_configs/event_socket.conf.xml
  2. 的Un註釋以下行:
<param name="apply-inbound-acl" value="loopback.auto"/> 

這是我的工作event_socket.conf.xml文件:

<configuration name="event_socket.conf" description="Socket Client"> 
    <settings> 
    <param name="nat-map" value="false"/> 
    <param name="listen-ip" value="::"/> 
    <param name="listen-port" value="8021"/> 
    <param name="password" value="ClueCon"/> 
    <param name="apply-inbound-acl" value="loopback.auto"/> 
    <!--<param name="stop-on-bind-error" value="true"/>--> 
    </settings> 
</configuration> 
4

你必須去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> 

在此之後前往fs_cli和磁帶的命令:

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> 

變爲:

<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> 
+0

當我重新加載mod_acl時出現分段錯誤 – YumYumYum

0

我手動創建loopback.auto列表下acl.conf.xml

<list name="loopback.auto" default="allow"> 
    <node type="allow" cidr="172.31.0.0/16"/> 
    <node type="allow" cidr="52.67.85.153/32"/> 
</list> 

其中172.31.0.0/16是Freeswitch本地IP地址。

在event_socket.conf.xml文件我離開loopback.auto:

<param name="apply-inbound-acl" value="loopback.auto"/> 

然後運行reloadaclreloadxml。在我的情況下,我需要重新啓動Freeswitch才能使其工作。