我的问题是我在不同网络中有两台计算机,它们只能通过安装在两个系统上的公共文件共享(通常是第三方主机上的Windows SMB服务器)进行“通信”。所有其他端口均被阻塞!我想将此文件共享用于这两台计算机之间的直接通信。我在两台计算机上都是root用户,可以在它们上使用Windows或Linux。也不需要使用SSH进行通信,可以使用“ netcat”或其他面向命令行的工具。
到目前为止,为解决该问题已经做了什么:我开始了一个(很长的;-)关于SSH隧道的讨论,该讨论SSH: TCP-over-File?暂时搁置,但其中包括许多有价值的{ {3}}(尤其是Ch。Duffy等人)。我已经知道SSH不适合这种方式,但是这个Windows隧道工具是否有用的问题仍然存在:information
在这种情况下,如何使用操作系统附带的常用工具(Ubuntu或Windows 7)建立通信?
答案 0 :(得分:1)
您对通用工具的要求不包括任何可能的Windows解决方案。
如果您具有直接的TCP / IP连接,netcat是一个很好的工具,
文件重定向不是问题,因为您可以在本地重定向并在远程上进行提取;我假设您正在寻找一种更优雅的终端作为您对通讯的定义。
使用tail -f时您处在正确的轨道上,但是尝试模拟网络连接将需要重写SSH以使用文件进行通信。
“ SSH: TCP-over-file”中对我的代码所做的改进是模拟一个实际的终端。在单个窗口中的本地计算机上运行以下代码:
tail -f /mnt/fileshare/my_ssh_out >>/dev/`ps eax | grep $$ |cut -d ' ' -f 2 | tail -n 1` &
cat >> /mnt/fileshare/my_ssh_in
行:/dev/ps eax | grep $$ |cut -d ' ' -f 2 | tail -n 1 &
获取当前终端,因此可以将输出重定向到该终端。
注意:您不能在本地重定向输出。
答案 1 :(得分:1)
因此,如果您同时在两台计算机上都是根用户,那么我假设存在一个您无法控制的中间防火墙?在此与“沟通”非常模糊的要求之间,我看到一些选项不是很快,但却可以使用。
创建2个文件夹,每台计算机一个文件夹,用于将“邮件”文件放入其中。每个节点都将运行一个应用程序,以监听(从另一台计算机上)正在排队的新文件,下载和处理新文件以及删除已处理的消息。
让一台机器运行带有Web套接字的服务器(您说它们已经联网,因此我假设这里是Internet),而另一台则作为客户端连接到它。然后,您可以在网络上传递消息并触发操作。
这两个都不是快速或完全可靠的,并且可能无法提供对另一台计算机的完全控制。您可能仅限于由特定关键字触发的预定义操作,或者可能疯狂到足以从消息中提取任意命令并在用户权限下盲目执行它们。
答案 2 :(得分:0)
如果计算机之间的唯一分段是IP子网,例如:无VLAN或物理分隔。尝试通过ping本地链接地址来使用IPv6连接。
在cmd窗口中使用以下Windows命令:
ipconfig /all
在物理适配器上查找“ FE80:”地址。
在另一台计算机上:
ping -6 fe80:...
如果这可行,则可以使用该IP地址在计算机之间进行通信。每个VM将具有不同的地址。在Linux中,使用 ifconfig 查找地址。
如果这不起作用,则始终可以使用两个廉价的USB有线以太网适配器和交叉电缆。