我试图在远程EC2实例(Windows)上执行命令,但是我无法从本地计算机连接远程服务器。 我已经把所有端口的ICMP打开了。
ICMP在这里不会为你做任何事情。
通常情况下,您可以使用带有远程桌面的terminal服务通过完整的GUI(video,键盘和鼠标)访问远程Windows服务器,并访问本地驱动器进行文件复制。
远程桌面允许你做什么是首先访问你的服务器,在本地testing你的远程脚本/可执行文件(即确保你的path是正确的,你的期望的输出和input工作等) 。
无论您使用远程命令执行什么操作,远程桌面上的任何生产Windows盒子都应该安全地通过远程桌面访问,因为定期维护,安装Windows更新等操作需要某种程度的访问权限。
远程桌面使用TCP端口3389打开,并且还要求启用terminal服务。
要安全地访问远程Windows服务器,需要VPN连接/隧道:绝对不希望在Internet上打开TCP端口135(远程过程调用)和445(Microsoft-DS服务)!
如果在Windows Server(而且该防火墙支持IPSec隧道)之前有硬件防火墙,则使用Windows内置的PPTP / L2TP over IPSec或IPSec隧道build立安全连接。 如果要定期在一台机器上执行远程服务器上的命令,PPTP或L2TP over IPSec客户端VPN连接就足够了; 如果您希望多台计算机定期访问此远程Windows服务器,则站点到站点IPSec隧道可能更有意义。
一旦build立了与服务器的安全连接(并且我还想通过数据包筛选器在单独的硬件防火墙中或至less使用Windows防火墙来限制公共IP访问),现在可以使用类似于psexec (如果是本地的,也许是PowerShell)来执行你的内置命令或者你想远程运行的脚本/命令行工具。
在Windows服务器上安装SSH服务器。 WinSSHD是一个廉价,但良好的Windows SSH服务器。 如果你不想花费比我喜欢的OpenSSH for Windows包装CopSSH。
一旦安装了SSH服务器,您就可以通过一个SSH客户端(如Putty)执行命令行工具。 或者您可以通过SSH远程桌面隧道RDP。 使用CopSSH和WinSSHD隧道rdp的方向可以在这里和这里find。
在端口1234上运行一个简单的网站怎么样? 您可以使aspx代码轻松地执行命令: