请教windows下远程桌面实现端口转发

请教windows下远程桌面实现端口转发,第1张

在实验室网关219.217.245.239安装端口转发程序,例如将本机:70040转为192.168.3.40:3389,

然后连接219.217.245.239:70040,就会直接败答转到实验轿锋室闭枯晌机器。

在Windows系统中,从XP开始就内嵌了一个设置网络端口转发的功能。依靠这个功能,任何到本地端口的TCP连接(ipv4或ipv6)都能够被转发到任意一个本地端口,甚至是远程主机的某个端口。并且,Windows系统并不需要去开启监听这个转发端口的服务。

在Windows服务器中,远程访问控制协议(RRAS)通常被用作端口转发,但是有一种更简单的配置方法,并且这种配置方法适用于windows的任意版本。

Windows系统下的端口转发使用portproxy模式下的netsh命令,该命令的使用前提是要在管理员身份打开cmd进行执行。

netsh interface portproxy add v4tov4  listenaddress =localaddress listenport = localport connectaddress =destaddress  connectport =destport protocol= tcp

listenaddress – 待连接的ip地址。

listenport –待连接的tcp本地端口 。

connectaddress – 待连接被转发的逗历本地或远程主机的ip地址(支持域名)

connectport –从listenport转发到的tcp端口

netsh interface portproxy add v4tov4  listenport=3340 listenaddress=10.1.1.110  connectport=3389 connectaddress=10.1.1.110

1) netstat -ano | findstr :3340来验证3340端口陆猛是否正在监听中,如果该命令没有返回任何信息,或者说通过netsh接口并没有实现端口转发的功能,那么需要查看下系统是否开启了iphlpsvc(ip Helper)服务。

2) tasklist | findstr 3340查看监听该端口的进程

3) 检查防火墙是否关闭,如果关闭则跳过。如果打开需要手工配置相应的防火墙。

连接时请确保防火墙(Windows防火墙或者其他的第三方防护软件)允许外部连接到一个全新的端口,如果不允许,那么只能自行添加一个新的Windows防火墙规则,命令如下:netsh advfirewall firewall add rule name=”forwarded_RDPport_3340”  protocol=TCP dir=in localip=10.1.1.110  localport=3340 action=allow

当通过Windows防火墙接口为3340端口建立一个新的规则时,这个端口需要保证没有被任何程序占用,也就是说此端口仅供网络驱动使用。你可以创立任意的Windows端口转发规早指桥则,所有的netsh接口下的端口代理规则都是永久的,并且储存在系统中(不受开机重启的影响)。

查看系统中的所有转发规则是否生效:

netsh interface portproxy show all

查看端口转发的设置:netsh interface portproxy dump

删掉一个特定的端口转发规则:

netsh interface portproxy delete v4tov4

清空当前所有的配置规则:

netsh interface portproxy reset

从远程主机来尝试连接这个新转发的端口3340,3340端口等同于原来的3389端口,连接的地址为10.10.1.110:3340。

注意:这些转发规则仅仅适用于TCP端口,对于UDP的端口转发,使用上面的方法是无效的。在配置规则时,不能将127.0.0.1作为连接地址。

1) 通过一台windows机器端口转发到一台windows远程主机

netsh interface portproxy add v4tov4  listenport=3340 listenaddress=10.1.1.110  connectport=3389  connectaddress=10.1.1.110

netsh interface portproxy add v4tov4 listenport=3389 listenaddress=0.0.0.0 connectport=3389 connectaddress=192.168.100.101

2) 通过一台ipv4的Windows机器转发到一台ipv6的服务器。

netsh interface portproxy add v4tov6  listenport=3340 listenaddress=10.1.1.110  connectport=3389  connectaddress=ffff::66

1) 在Windows Server 2012 R2中,端口转发规则有可能会在系统重启后被重置,在这种情况下,需要在网络协议中检查是否存在配置不当,导致网络的间断性断开,或者当系统重启时是否出现了ip地址的变换(推荐使用静态ip)。在一个工作组里,通常是在windows任务计划程序里添加了一个实现端口转发的脚本。

2) 在Windows 2003/XP中,必须在注册表(HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters)中找到并设置IPEnableRouter参数为1才能实现端口转发。

3) 防火墙规则检查

4) 端口转发依赖的ip helper服务是否启动

5) 端口转发是否生效

6) Windows7和WindowsServer2008R2安全事件的说明 *** 作系统日志标识

Windows日志查看

6273 网络策略服务器拒绝用户访问。

6274 网络策略服务器放弃用户的请求。

4868 证书管理器拒绝了挂起的证书请求。

4870 证书服务吊销了证书。

4944 当启动 Windows 防火墙时,以下策略处于活动状态。

4945 当启动 Windows 防火墙已列出规则。

4946 Windows 防火墙例外列表已更改。添加的规则。

4947 Windows 防火墙例外列表已更改。修改规则的。

4948 Windows 防火墙例外列表已更改。规则已被删除。

4949 Windows 防火墙设置都恢复为默认值。

4950 更改 Windows 防火墙设置。

4951 Windows 防火墙忽略规则,因为无法识别的主要版本号。

4952 Windows 防火墙忽略规则的部分,因为无法识别它的次要版本号。将强制执行该规则的其他部分。

4953 由于无法分析,Windows 防火墙将忽略规则。

4954 Windows 防火墙组策略设置已更改,并且未应用新设置。

4956 Windows 防火墙更改活动配置文件。

5024 Windows 防火墙服务已成功启动。

5025 Windows 防火墙服务已停止。

5027 Windows 防火墙服务无法从本地存储区中检索的安全策略。Windows 防火墙将继续执行当前的策略。

5028 Windows 防火墙无法分析新的安全策略。Windows 防火墙将继续执行当前的策略。

http://woshub.com/port-forwarding-in-windows/

SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行 *** 作。

上一节的 *** 作,就是一个例子:

单引号中间的部分,表示在远程主机上执行的 *** 作;后面的输入重定向,表示数据通过SSH传向远程主机。

这就是说,SSH可以在用户和远程主机之间,建立命令和数据的传输通道,因此很多事情都可以通过SSH来完成。

下面看几个例子。

【例1】

将 HOME/src/目录。

【例2】

将远程主机$HOME/src/目录下面的所有文件,复制到用户的当前目录。

【例3】

查看远程主机是否运行进程httpd。

既然SSH可以传送数据,那么我们可以让那些不加密的网络连接,全部改走SSH连接,从而提高安全性。

假定我们要让8080端口的数据,都通过SSH传向远程主机,命令就这样写:

SSH会建立一个socket,去监听本地的8080端口。一旦有数据传向那个端口,就自动把它转移到SSH连接上面,发往远程主机。可以想象,如果8080端口原来是誉孝一个不加密端口,现在困虚薯将变成一个加密端口。

有时,绑定本地端口还不够,还必须指定数据传送的目标主机,从而形成点对点的"端口转发"。为了区别后文的"远程端口转发",我们把这种情况称为"本地端口转发"(Local forwarding)。

假定host1是本地主机,host2是远程主机。由于种种原因,这两台主机之间无法连通。但是,另外还有一台host3,可以同时连通前面两台主机。因此,很自然的想法就是,通过host3,将host1连上host2。

我们在host1执行下面的命令:

命令中的L参数一共接受三个值,分别是"本地端口:目标主机:目标主机端口",它们之间用冒号分隔。这条命令的意思,就是指定SSH绑定本地端口2121,然后指定host3将所有的数据,转发到目标主机host2的21端口(假定host2运行FTP,默认端口为21)。

这样一来,我们只要连接host1的2121端口,就等于连上了host2的21端口。

"本地端口转发"使得host1和host3之间仿佛形成一个数据传输的秘密隧道,因此又被称为"SSH隧道"。

下面是一个比较有趣的例子。

它表示将本机的5900端口绑定host3的5900端口(这里的localhost指的是host3,因为目标主机是相对host3而言的)。

另一个例子是通过host3的端口转发,ssh登录host2。

这时,只要ssh登录本机的9001端口,就相当于登录host2了。

上面的-p参数表示指定登录端口。

既然"本地端口转发"是指绑定本地端口的转发,那么"远程端口转发"(remote forwarding)当然是指绑定远程端口的转发。还汪者是接着看上面那个例子,host1与host2之间无法连通,必须借助host3转发。但是,特殊情况出现了,host3是一台内网机器,它可以连接外网的host1,但是反过来就不行,外网的host1连不上内网的host3。这时,"本地端口转发"就不能用了,怎么办?

解决办法是,既然host3可以连host1,那么就从host3上建立与host1的SSH连接,然后在host1上使用这条连接就可以了。

我们在host3执行下面的命令:

R参数也是接受三个值,分别是"远程主机端口:目标主机:目标主机端口"。这条命令的意思,就是让host1监听它自己的2121端口,然后将所有数据经由host3,转发到host2的21端口。由于对于host3来说,host1是远程主机,所以这种情况就被称为"远程端口绑定"。

绑定之后,我们在host1就可以连接host2了:

这里必须指出,"远程端口转发"的前提条件是,host1和host3两台主机都有sshD和ssh客户端。

SSH还有一些别的参数,也值得介绍。

N参数,表示只连接远程主机,不打开远程shell;T参数,表示不为这个连接分配TTY。这个两个参数可以放在一起用,代表这个SSH连接只用来传数据,不执行远程 *** 作。

f参数,表示SSH连接成功后,转入后台运行。这样一来,你就可以在不中断SSH连接的情况下,在本地shell中执行其他 *** 作。

要关闭这个后台连接,就只有用kill命令去杀掉进程。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12356041.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存