Managing Endpoints

    The endpoints are normally specified either in ArangoDB’s configuration file oron the command-line, using the . ArangoDB supports differenttypes of endpoints:

    • tcp://ipv4-address:port - TCP/IP endpoint, using IPv4
    • ssl://ipv4-address:port - TCP/IP endpoint, using IPv4, SSL encryption
    • ssl://[ipv6-address]:port - TCP/IP endpoint, using IPv6, SSL encryption

    The default endpoint for ArangoDB is tcp://127.0.0.1:8529 ortcp://localhost:8529.

    EXAMPLES

    Given a hostname:

    —server.endpoint tcp://hostname:port

    Given an IPv4 address:

    Given an IPv6 address:

    —server.endpoint tcp://[ipv6-address]:port

    On one specific ethernet interface each port can only be bound exactlyonce. You can look up your available interfaces using the ifconfig commandon Linux / MacOSX - the Windows equivalent is ipconfig (See Wikipedia formore details). The general names of theinterfaces differ on OS’s and hardwares they run on. However, typically everyhost has a so called,which is a virtual interface. By convention it always has the address127.0.0.1 or ::1 (ipv6), and can only be reached from exactly the very samehost. Ethernet interfaces usually have names like eth0, wlan0, eth1:17,le0 or a plain text name in Windows.

    To find out which services already use ports (so ArangoDB can’t bind themanymore), you can use thenetstat command(it behaves a little different on each platform, run it with -lnpt on Linux,-p tcp on MacOSX or with -an on windows for valuable information).

    ArangoDB can also do a so called broadcast bind usingtcp://0.0.0.0:8529. This way it will be reachable on all interfaces of thehost. This may be useful on development systems that frequently change theirnetwork setup like laptops.

    ArangoDB can also listen to IPv6 link-local addresses via adding the zone IDto the IPv6 address in the form . However,what you probably instead want is to bind to a local IPv6 address. Local IPv6addresses start with fd. If you only see a fe80: IPv6 address in yourinterface configuration but no IPv6 address starting with fd your interfacehas no local IPv6 address assigned. You can read more about IPv6 link-localaddresses .

    Bind to a link-local and local IPv6 address.

    This command lists all interfaces and assigned ip addresses. The link-localaddress may be (IPv6 address plus interface name).A local IPv6 address may be fd12:3456::789a. To bind ArangoDB to it startarangod with —server.endpoint tcp://[fe80::6257:18ff:fe82:3ec6%eth0]:8529.Use telnet to test the connection.

    —tcp.reuse-address

    If this boolean option is set to true then the socket option SOREUSEADDR isset on all server endpoints, which is the default. If this option is set to_false it is possible that it takes up to a minute after a server hasterminated until it is possible for a new server to use the same endpointagain. This is why this is activated by default.

    Please note however that under some operating systems this can be a securityrisk because it might be possible for another process to bind to the sameaddress and port, possibly hijacking network traffic. Under Windows, ArangoDBadditionally sets the flag SO_EXCLUSIVEADDRUSE as a measure to alleviate thisproblem.