@@ -47,6 +47,8 @@ There are several areas which can be configured or tuned. Each has a section in
47
47
* Other TCP socket settings
48
48
* [ Proxy protocol] ( #proxy-protocol ) support for client connections
49
49
* Kernel TCP settings and limits (e.g. [ TCP keepalives] ( #tcp-keepalives ) and [ open file handle limit] ( #open-file-handle-limit ) )
50
+ * How to allow Erlang runtime to accept inbound connections
51
+ when [ MacOS Application Firewall] ( #firewalls-mac-os ) is enabled
50
52
51
53
This guide also covers a few topics closely related to networking:
52
54
@@ -1205,3 +1207,35 @@ See [Connection Lifecycle Events](/logging.html#connection-lifecycle-events) in
1205
1207
1206
1208
A methodology for [ troubleshooting of networking-related issues] ( /troubleshooting-networking.html )
1207
1209
is covered in a separate guide.
1210
+
1211
+
1212
+ ## <a id =" firewalls-mac-os " class =" anchor " href =" #firewalls-mac-os " >MacOS Application Firewall</a >
1213
+
1214
+ On MacOS systems with [ Application Firewall] ( https://support.apple.com/en-us/HT201642 ) enabled,
1215
+ Erlang runtime processes must be allowed to bind to ports and accept connections.
1216
+ Without this, RabbitMQ nodes won't be able to bind to their [ ports] ( #ports ) and will fail to start.
1217
+
1218
+ A list of blocked applications can be seen under ` Security and Privacy ` => ` Firewall ` in system settings.
1219
+
1220
+ To "unblock" a command line tool, use ` sudo /usr/libexec/ApplicationFirewall/socketfilterfw ` .
1221
+ The examples below assume that Erlang is installed under ` /usr/local/Cellar/erlang/{version} ` ,
1222
+ used by the Homebrew Erlang formula:
1223
+
1224
+ <pre class =" lang-bash " >
1225
+ # allow CLI tools and shell to bind to ports and accept inbound connections
1226
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/erlang/{version}/lib/erlang/bin/erl
1227
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/erlang/{version}/lib/erlang/bin/erl
1228
+ </pre >
1229
+
1230
+ <pre class =" lang-bash " >
1231
+ # allow server nodes (Erlang VM) to bind to ports and accept inbound connections
1232
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/local/Cellar/erlang/{version}/lib/erlang/erts-{erts version}/bin/beam.smp
1233
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/local/Cellar/erlang/{version}/lib/erlang/erts-{erts version}/bin/beam.smp
1234
+ </pre >
1235
+
1236
+ Note that ` socketfilterfw ` command line arguments can vary between MacOS releases.
1237
+ To see supports command line arguments, use
1238
+
1239
+ <pre class =" lang-bash " >
1240
+ sudo /usr/libexec/ApplicationFirewall/socketfilterfw --help
1241
+ </pre >
0 commit comments