You are not logged in.

#1 2016-11-04 06:36:06

callofdutyops
Member
Registered: 2014-08-21
Posts: 9

[SOLVED]systemd kcptun enable error: connect: network is unreachable

Problem description:
I use systemd script enable&start my kcptun service. If I use

# systemctl start kcptun@example_client.service

after I enter Xorg, it seems that everything works fine. but If I use

# systemctl enable kcptun@example_client.service

I got an error when boot, the information in details is shown below.

Information I know:
kcptun is A Simple UDP Tunnel Based On KCP.
This is my kcptun@.service

[Unit]
Description=Kcptun Client Service
After=network.target

[Service]
Type=simple
User=nobody
ExecStart=/usr/bin/kcptun_client -c /etc/kcptun/%i.json

[Install]
WantedBy=multi-user.target

and journalctl

Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 version: 20161102
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 listening on: [::]:4333
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 encryption: aes
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 nodelay parameters: 1 20 2 1
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 remote address: xxx.xxx.xxx.xxx:45678
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 sndwnd: 128 rcvwnd: 1024
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 compression: false
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 mtu: 1350
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 datashard: 10 parityshard: 3
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 acknodelay: false
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 dscp: 46
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 sockbuf: 4194304
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 keepalive: 10
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 conn: 1
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 autoexpire: 60
Nov 04 04:46:17 hp-pc kcptun_client[384]: 2016/11/04 04:46:17 dial udp xxx.xxx.xxx.xxx:45678: connect: network is unreachable
Nov 04 04:46:17 hp-pc kcptun_client[384]: net.DialUDP
Nov 04 04:46:17 hp-pc kcptun_client[384]: github.com/xtaci/kcp-go.DialWithOptions
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcp-go/sess.go:899
Nov 04 04:46:17 hp-pc kcptun_client[384]: main.main.func1.1
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcptun/client/main.go:314
Nov 04 04:46:17 hp-pc kcptun_client[384]: main.main.func1
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcptun/client/main.go:366
Nov 04 04:46:17 hp-pc kcptun_client[384]: runtime.call32
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/runtime/asm_amd64.s:479
Nov 04 04:46:17 hp-pc kcptun_client[384]: reflect.Value.call
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/reflect/value.go:434
Nov 04 04:46:17 hp-pc kcptun_client[384]: reflect.Value.Call
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/reflect/value.go:302
Nov 04 04:46:17 hp-pc kcptun_client[384]: github.com/urfave/cli.HandleAction
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/urfave/cli/app.go:487
Nov 04 04:46:17 hp-pc kcptun_client[384]: github.com/urfave/cli.(*App).Run
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/urfave/cli/app.go:245
Nov 04 04:46:17 hp-pc kcptun_client[384]: main.main
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcptun/client/main.go:406
Nov 04 04:46:17 hp-pc kcptun_client[384]: runtime.main
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/runtime/proc.go:183
Nov 04 04:46:17 hp-pc kcptun_client[384]: runtime.goexit
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/runtime/asm_amd64.s:2086
Nov 04 04:46:17 hp-pc kcptun_client[384]: createConn()
Nov 04 04:46:17 hp-pc kcptun_client[384]: main.main.func1.1
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcptun/client/main.go:316
Nov 04 04:46:17 hp-pc kcptun_client[384]: main.main.func1
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcptun/client/main.go:366
Nov 04 04:46:17 hp-pc kcptun_client[384]: runtime.call32
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/runtime/asm_amd64.s:479
Nov 04 04:46:17 hp-pc kcptun_client[384]: reflect.Value.call
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/reflect/value.go:434
Nov 04 04:46:17 hp-pc kcptun_client[384]: reflect.Value.Call
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/reflect/value.go:302
Nov 04 04:46:17 hp-pc kcptun_client[384]: github.com/urfave/cli.HandleAction
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/urfave/cli/app.go:487
Nov 04 04:46:17 hp-pc kcptun_client[384]: github.com/urfave/cli.(*App).Run
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/urfave/cli/app.go:245
Nov 04 04:46:17 hp-pc kcptun_client[384]: main.main
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /Users/xtaci/.godeps/src/github.com/xtaci/kcptun/client/main.go:406
Nov 04 04:46:17 hp-pc kcptun_client[384]: runtime.main
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/runtime/proc.go:183
Nov 04 04:46:17 hp-pc kcptun_client[384]: runtime.goexit
Nov 04 04:46:17 hp-pc kcptun_client[384]:         /usr/local/go/src/runtime/asm_amd64.s:2086
Nov 04 04:46:17 hp-pc systemd[1]: kcptun@example_client.service: Main process exited, code=exited, status=255/n/a
Nov 04 04:46:17 hp-pc systemd[1]: kcptun@example_client.service: Unit entered failed state.
Nov 04 04:46:17 hp-pc systemd[1]: kcptun@example_client.service: Failed with result 'exit-code'.
Nov 04 04:46:17 hp-pc systemd[1]: kcptun@example_client.service: Service hold-off time over, scheduling restart.
Nov 04 04:46:17 hp-pc systemd[1]: kcptun@example_client.service: Start request repeated too quickly.
Nov 04 04:46:17 hp-pc systemd[1]: kcptun@example_client.service: Unit entered failed state.

What I have tried
enable NetworkManager-wait-online.service

Last edited by callofdutyops (2016-11-13 18:53:33)

Offline

#2 2016-11-13 18:51:57

callofdutyops
Member
Registered: 2014-08-21
Posts: 9

Re: [SOLVED]systemd kcptun enable error: connect: network is unreachable

I have solved this problem and I'll put the solution here. Thanks a lot for @kasei 's help!
The original post is here.
Quote is here and I just correct some typo.

kasei wrote:

That's because reaching network.target doesn't mean you get an available IP address or network connection.( https://www.freedesktop.org/wiki/Softwa … orkTarget/ )
In this case, kcptun will abort. I think this should be an upstream issue.
But there is a workaround, you can tell systemd to restart kcptun until it's up and runs. Like this:
----------------------------------
[Unit]
Description=Kcptun Client Service
After=network.target

[Service]
Type=simple
User=nobody
ExecStart=/usr/bin/kcptun_client -c /etc/kcptun/%i.json
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
----------------------------------

Offline

Board footer

Powered by FluxBB