我正在使用 Synergy 将我的桌面(GNU/Linux,通过电缆连接到路由器)连接到我的笔记本电脑(OSX ElCapitan,通过 WiFi 连接)。
如果我使用笔记本电脑作为服务器,它就会运行得非常好;
从桌面(客户端):
me@my-desktop ~ $ sudo lsof -i :24800
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
synergyc 5533 me 6u IPv4 46314 0t0 TCP 192.168.0.2:38706->192.168.0.3:24800 (ESTABLISHED)
从笔记本电脑(服务器)来看:
My-MacBook-Pro:~ me$ sudo lsof -i :24800
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
synergys 17646 me 4u IPv4 0x728ca44823ae6a59 0t0 TCP *:24800 (LISTEN)
synergys 17646 me 14u IPv4 0x728ca44822d02fb9 0t0 TCP 192.168.0.3:24800->192.168.0.2:38706 (ESTABLISHED)
但当我切换时,它却无法连接。(在 Synergy 中我得到:连接超时)。
从桌面(现在是服务器):
me@my-desktop ~ $ sudo lsof -i :24800
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
synergys 5611 me 6u IPv4 45707 0t0 TCP *:24800 (LISTEN)
从笔记本电脑(现在是客户端)来看:
My-MacBook-Pro:~ me$ sudo lsof -i :24800
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
synergyc 17662 me 4u IPv4 0x728ca4482eed3c39 0t0 TCP 192.168.0.3:60629->192.168.0.2:24800 (SYN_SENT)
我认为这是一种网络/防火墙问题,而不是 Synergy 问题。
那么我该如何解决这个问题呢?哪台机器阻止了通信?我的理解是,由于我的台式机正在监听,因此其端口必须打开。而我的笔记本电脑发送了一个请求,那么通信被阻止在哪里呢?
答案1
台式机阻止了笔记本电脑的请求。只需打开端口即可解决问题。在终端中写入以下内容以打开端口:
sudo iptables -I INPUT -p tcp --dport 24800 --syn -j ACCEPT