I’m having trouble connecting to a launched machine on exposed service ports. I created a machine using the REST API as described in the docs. This machine can be returned via the API:
[
{
"id": "3287194b055785",
"name": "default",
"state": "started",
"region": "sea",
"instance_id": "01GFYZEY7ZD3X7GE5TFSBX2MSA",
"private_ip": "fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2",
"config": {
"env": {
"ADMIN_SERVER_BASE": "0.0.0.0",
"ADMIN_SERVER_HTTP_PORT": "8080"
},
"init": {
"exec": null,
"entrypoint": null,
"cmd": null,
"tty": false
},
"image": "registry.fly.io/capemay-test:abdb81c",
"metadata": null,
"mounts": [
{
"encrypted": false,
"path": "/db",
"size_gb": 0,
"volume": "vol_ke628r69ww1rwmnp"
}
],
"restart": {
"policy": ""
},
"services": [
{
"protocol": "tcp",
"internal_port": 8080,
"ports": [
{
"port": 80,
"handlers": [
"http"
],
"force_https": true
},
{
"port": 443,
"handlers": [
"http",
"tls"
]
}
]
}
],
"guest": {
"cpu_kind": "shared",
"cpus": 1,
"memory_mb": 256
},
"metrics": null
},
"image_ref": {
"registry": "registry.fly.io",
"repository": "capemay-test",
"tag": "abdb81c",
"digest": "sha256:b64586ca091b0d0605dc146bf9af293ff89ed2955099675ba7915d2cedf0507e",
"labels": {}
},
"created_at": "2022-10-22T04:23:22Z",
"updated_at": "2022-10-22T04:33:26Z",
"events": [
{
"type": "start",
"status": "started",
"source": "flyd",
"timestamp": 1666413206920
},
{
"type": "launch",
"status": "created",
"source": "user",
"timestamp": 1666413197580
}
]
}
]
It is also returned via flyctl
:
❯ fly machines list -a capemay-test
1 machines have been retrieved.
View them in the UI here (https://fly.io/apps/capemay-test/machines/)
capemay-test
ID NAME STATE REGION IMAGE IP ADDRESS VOLUME CREATED LAST UPDATED
3287194b055785 default started sea capemay-test:abdb81c fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2 vol_ke628r69ww1rwmnp 2022-10-22T04:23:22Z 2022-10-22T04:33:26Z
When connected to the WireGuard network I can ping the machine at the IPv6 IP:
❯ ping6 fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2
PING6(56=40+8+8 bytes) fdaa:0:b9ba:a7b:177d:0:a:2 --> fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2
16 bytes from fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2, icmp_seq=0 hlim=62 time=10.089 ms
16 bytes from fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2, icmp_seq=1 hlim=62 time=8.510 ms
16 bytes from fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2, icmp_seq=2 hlim=62 time=8.816 ms
However, I cannot connect via the exposed port:
❯ curl -g -6 -X GET 'http://[fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2]:80'
curl: (7) Failed to connect to fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2 port 80 after 8 ms: Connection refused
capemay/core on main via impure (nix-shell)
❯ curl -g -6 -X GET 'http://[fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2]:8080'
curl: (7) Failed to connect to fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2 port 8080 after 7 ms: Connection refused
capemay/core on main via impure (nix-shell)
❯ curl -g -6 -X GET 'https://[fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2]:443'
curl: (7) Failed to connect to fdaa:0:b9ba:a7b:2dbb:a7e3:c3ce:2 port 443 after 11 ms: Connection refused
Also, the output of the app doesn’t show the service ports or region (despite the API responding with it):
❯ fly info -a capemay-test
App
Name = capemay-test
Owner = personal
Version = 0
Status = deployed
Hostname = capemay-test.fly.dev
Services
PROTOCOL PORTS
IP Addresses
TYPE ADDRESS REGION CREATED AT
v6 fdaa:0:b9ba:0:1::2 2022-10-22T04:48:32Z
Anyone have advice?