Inlets is a tool for creating secure, publicly accessible tunnels for connecting servers with each other. It allows you to expose a local service hosted on your private network to the public internet via websockets without opening a port on your firewall.
In this tutorial, we'll show you how to install Inlets on the latest version of Fedora Server.
Before we begin, ensure that you've fulfilled the following requirements:
Inlets is built with Go programming language, so we'll need to install it first. Fedora has a prebuilt package of Go in its default repository. Run the following command to install Go:
$ sudo dnf install -y go
After the installation finishes, verify that Go is installed correctly by checking the version:
$ go version
You should see output similar to:
go version go1.17.4 linux/amd64
Next, download the Inlets binary from the official Inlets GitHub repository using the following command:
$ curl -SLsf https://github.com/inlets/inlets/releases/download/{version}/inlets-{version}-linux-amd64.tar.gz | tar xz
Replace {version}
with the latest release version of Inlets. For example:
$ curl -SLsf https://github.com/inlets/inlets/releases/download/0.10.4/inlets-0.10.4-linux-amd64.tar.gz | tar xz
This command will download and extract inlets into the current directory.
To run Inlets as a system service, we'll create a systemd unit file.
Create a new file named /etc/systemd/system/inlets.service
using a text editor:
$ sudo nano /etc/systemd/system/inlets.service
Paste the following contents into the file:
[Unit]
Description=Inlets
After=network.target
[Service]
ExecStart=/path/to/inlets server \
--port 80 \
--token abcdefg \
--upstream http://localhost:8080
User=nobody
Group=nobody
Restart=always
[Install]
WantedBy=multi-user.target
Replace /path/to/inlets
with the actual path to the Inlets binary that you downloaded in Step 2.
The --port
flag specifies the port on which inlets should listen for incoming connections.
The --token
flag is a secret shared between the client and server that is used for authentication.
The --upstream
flag specifies the URL of the local service that inlets should tunnel traffic to.
Save and close the file. Then, reload the systemd daemon:
$ sudo systemctl daemon-reload
Now that the inlets.service file is created, start and enable the Inlets service to automatically start on boot:
$ sudo systemctl start inlets
$ sudo systemctl enable inlets
You can verify that the Inlets service is running correctly by checking its status:
$ sudo systemctl status inlets
You should see output similar to:
● inlets.service - Inlets
Loaded: loaded (/etc/systemd/system/inlets.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2022-01-19 22:03:26 UTC; 29s ago
Main PID: 12345 (inlets)
Tasks: 8 (limit: 2054)
Memory: 14.2M
CGroup: /system.slice/inlets.service
└─12345 /path/to/inlets server --port 80 --token abcdefg --upstream http://localhost:8080
This indicates that the Inlets service is running correctly and ready to accept connections.
In this tutorial, you learned how to install Inlets on Fedora Server Latest and configure it as a system service. You can now use Inlets to connect your private network services to the public internet securely.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!