首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RDP (端口3389)与局域网机通信

RDP (端口3389)与局域网机通信
EN

Unix & Linux用户
提问于 2017-05-19 19:01:05
回答 2查看 3K关注 0票数 1

没有流量将是外部的(面对互联网)所有的流量将是内部的。

我试图实现的是从WINDOWS PC 1到RDP,将来自WINDOWS PC 1的RDP流量伪装成Linux服务器IP地址(10.0.2.5),然后从那里继续到目标WINDOWS PC 2。

下面是一幅进一步说明的图片:

代码语言:javascript
复制
    WINDOWS PC 1 (10.0.2.122)
             |
           [RDP]
             |
             V
 LINUX SERVER (10.0.2.5)
             |
         [FW 3389]
             |
             V
   WINDOWS PC 2 (10.0.2.188)

我试过什么

  • 我在内核中启用了端口转发:sysctl net.ipv4.ip_forward=1
  • 我已经在很多论坛上尝试过几个答案,但还是没有答案:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3389 -j DNAT --to 10.0.2.188:3389 iptables -A FORWARD -p tcp --dport 3389 -d 10.0.2.188 -j ACCEPT

  • 我看了iptables计数器,没有看到活动:watch 'iptables -vL'
EN

回答 2

Unix & Linux用户

发布于 2017-05-19 22:16:47

在阅读了你的评论后,这两台电脑似乎是同一台局域网(局域网)的一部分。这就是为什么您看不到Linux Box中的通信量的原因。

本教程将教您局域网的基础知识,但让它变得简单明了:

  • 这些计算机将通过ARP相互了解;
  • 他们将“看到”他们属于同一个局域网,并将直接交谈。
  • 如果您的Linux盒是网关,它将只用于路由不属于该lan的通信量(从10.0.2.0/24或您定义的掩码中)。

tl博士:这些计算机都在同一个局域网上,因此,要从Linux机器上看到一些通信量(而且您将无法“拦截/损坏”,只需看到“),您将不得不将Linux设置为混杂模式:ip link set dev eth0 promisc on

好的。通过所有这些理论性的东西,当您在同一个lan中生成一个DNAT时,您将不得不使用SNAT“有力”地使数据包返回到它的起源。这是一个特殊的情况,当你做NAT时,在同一个局域网上有2台计算机。

代码语言:javascript
复制
iptables -t nat -A PREROUTING -p tcp --dport 3389 -j DNAT --to-destination 10.0.2.188:3389
iptables -t nat -A POSTROUTING -p tcp -d 10.0.2.188 --dport 3389 -j SNAT --to-source 10.0.2.122

这样,您将强制执行,当数据包返回到您的Linux盒时,源nat将对10.0.2.122执行

其他替代品:

制作一个带有HA代理的RDP代理并将这些主机放到分离的网络上。这是一个过度(创建一个成员rdp代理平衡),但它是另一种选择。

票数 3
EN

Unix & Linux用户

发布于 2023-05-22 13:43:33

HAProxy解决方案

请参阅微软远程桌面服务(RDS)负载平衡

代码语言:javascript
复制
sudo apt install haproxy

cat << EOF | sudo tee -a /etc/haproxy/haproxy.cfg
frontend ft_rdp
    mode tcp
    bind :3389 name rdp
    timeout client 1h
    log global
    option tcplog
    tcp-request inspect-delay 2s
    tcp-request content accept if RDP_COOKIE
    default_backend bk_rdp

backend bk_rdp
    mode tcp
    balance leastconn
    persist rdp-cookie
    timeout server 1h
    timeout connect 4s
    log global
    option tcp-check
    tcp-check connect port 3389 ssl
    default-server inter 3s rise 2 fall 3
    server windows_pc_2 10.0.2.188:3389 weight 10 verify none
EOF

sudo systemctl restart haproxy
systemctl list-units | grep haproxy
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/366143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档