wghttp/docs/usage.md

1.9 KiB

Usage

Running as systemd service

Since wghttp doesn't need any privilege, it's preferred to run as systemd user service.

Copy wghttp.service to ~/.config/systemd/user/wghttp.service. After setting the environment options in wghttp.service, run:

systemctl --user daemon-reload
systemctl --user enable --now wghttp

Options compared to WireGuard configuration file

For connecting as a client to a VPN gateway, you might have:

[Interface]
Address = 10.200.100.8/24
DNS = 10.200.100.1
PrivateKey = oK56DE9Ue9zK76rAc8pBl6opph+1v36lm7cXXsQKrQM=

[Peer]
PublicKey = GtL7fZc/bLnqZldpVofMCD6hDjrK28SsdLxevJ+qtKU=
AllowedIPs = 0.0.0.0/0
Endpoint = demo.wireguard.com:51820
PresharedKey = /UwcSPg38hW/D9Y3tcS1FOV0K1wuURMbS0sesJEP5ak=

The above configuration is equal to:

wghttp \
  --client-ip=10.200.100.8 \
  --dns=10.200.100.1 \
  --private-key=oK56DE9Ue9zK76rAc8pBl6opph+1v36lm7cXXsQKrQM= \
  --peer-key=GtL7fZc/bLnqZldpVofMCD6hDjrK28SsdLxevJ+qtKU= \
  --peer-endpoint=demo.wireguard.com:51820 \
  --preshared-key=/UwcSPg38hW/D9Y3tcS1FOV0K1wuURMbS0sesJEP5ak= \
  --exit-mode=remote

Dynamic DNS

When your server IP is not persistent, you can set a domain with DDNS for it. wghttp will resolve the domain periodically.

  • --resolve-dns=

    By default, the server domain is resolved by system resolver. This option can be set to use a different DNS server.

  • --resolve-interval=

    This option controls the interval for resolving server domain.

Set --resolve-interval= to 0 to disable this behaviour.

DNS server format

Both --dns= and --resolve-dns= options supports following format:

  • Plain DNS

    8.8.8.8, udp://8.8.8.8, tcp://8.8.8.8, 8.8.8.8:53, udp://8.8.8.8:53, tcp://8.8.8.8:53,

  • DNS over TLS

    tls://8.8.8.8, tls://8.8.8.8:853

  • DNS over HTTPS

    https://8.8.8.8