mod_proxy65
It allows the server to proxy file transfers between 2 clients that are behind NAT routers or firewalls, and otherwise wouldn't be able to transfer files.
Details
mod_proxy65 implements XEP-0065. Once set up, depending on which client you are using the proxy may be automatically used (if mod_disco is enabled), or the client may have to be configured. Consult your client's documentation for more information.
Usage
"proxy.example.com" "proxy65" Component
DNS
There must be a DNS record for the proxy’s
advertised address, which can be configured via the
proxy65_address
option described below. You can avoid the
need for any extra DNS records - just set proxy65_address
to any existing DNS A/AAAA record which contains the IP of your
server!
You generally do not need any DNS records for the component
domain (e.g. proxy.example.com
in the example above)
because XMPP traffic to and from the component is entirely within the
Prosody instance for most normal deployments.
To signal this to Prosody, disable mod_s2s for your component:
"proxy.example.com" "proxy65"
Component = "xmpp.example.com"
proxy65_address = {
modules_disabled "s2s";
}
Configuration
General options
These may be set differently per host, or in the global section to apply as a default for all hosts on the server.
Option | Default | Notes |
---|---|---|
proxy65_address | nil | The advertised address of the proxy, which clients use to connect to. If not set the hostname of the component is used. There must be a DNS A and/or AAAA record for this address. Alternatively you can specify an IP address. |
proxy65_acl | { } | Access Control List, when specified all users will be denied access unless in the list. The list can contain domains, bare jids (normal) or full jids (including a resource). |
Network and port options
Option | Default | Notes |
---|---|---|
proxy65_interfaces | { "*", "::" } | A list of interfaces to listen on. Defaults to all IPv4 (and IPv6 when available) interfaces. |
proxy65_ports | { 5000 } | A list of ports to listen on. |
Note: Because network and port options apply to the server as a whole, these options must be placed in the global section.
Example
Port configuration is global, so configure ports and interfaces above any VirtualHost or Component sections if you need to:
-- You only need these if you need to specify custom ports or interfaces
= { 5555 }
proxy65_ports = { "192.168.0.1" } proxy65_interfaces
Create one or more proxy components, like so:
"proxy.example.com" "proxy65"
Component = "ftproxy.example.com"
proxy65_address = { "example.com", "theadmin@anotherdomain.com", "only@fromwork.de/AtWork" } proxy65_acl