Sunshine + Moonlight

今天折腾下串流,sunshine 这个包在 Arch 的 aur 库里是有的,如果不想自己编译那么还可以直接从 archlinuxcn 里装

装完直接用,没有任何问题,moonlight 也很正常

但是,我的 Steam 是安装在虚拟机 Windows 上的,那么串流的时候,输入 Arch 的 IP 显然不合逻辑,所以就连不上了

这时,翻看 sunshine 的配置,会发现上面有列出需要用到的端口,那么是否可以进行端口映射来解决?

答案是可以的,并且可以用多种方式实现,比如常见的 iptables,或者 qemu 自带的

但是我这里用 socat

1
2
3
4
5
6
7
socat TCP-LISTEN:47984,fork TCP:192.168.122.130:47984
socat TCP-LISTEN:47989,fork TCP:192.168.122.130:47989
socat TCP-LISTEN:48010,fork TCP:192.168.122.130:48010
socat UDP-LISTEN:48010,fork UDP:192.168.122.130:48010
socat UDP-LISTEN:47998,fork UDP:192.168.122.130:47998
socat UDP-LISTEN:47999,fork UDP:192.168.122.130:47999
socat UDP-LISTEN:48000,fork UDP:192.168.122.130:48000

这样就可以了

当然,还可以给虚拟机插入个 USB 网卡,这种方式我试过也是没有问题