我在Ubuntu主机上运行了几个Linux容器,每个都运行一个webapp。 要访问webapps,我使用iptables转发端口: sudo iptables -t nat -A PREROUTING -p tcp –dport <port> -j DNAT –to-destination #<container_ip>:<port> 如果stream量来自我的主机之外 ,这很好。 如果请求由本地主机完成,则不起作用: curl <host_ip>:<port> #works (from outside the host) curl <container_ip>:<port> #works (from inside the host) curl 127.0.0.1:<port> #doesn't work (from inside the host) 我知道来自本地主机的数据包不经过iptables DNAT规则,这就是为什么它不起作用。 有没有办法得到这个工作?
我有一个服务器与一个外部IP地址(例如1.2.3.4 )。 在该服务器上,我使用libvirt来运行虚拟机。 现在我想从外部通过ssh( port 1234 )访问我的主机上的虚拟服务器。 在我的主机系统上,我得到了一个连接到我的外部IP( 1.2.3.4 )的networking接口eth0 。 我的虚拟机通过一个名为virbr0的NAT接口连接到主机,IP地址为192.168.122.235 。 由于我需要转发一个端口,我做了以下与iptable iptables -t nat -A PREROUTING -p tcp -i eth0 –dport 1234 -j DNAT –to-destination 192.168.122.235:1234 iptables -A FORWARD -p tcp -d 192.168.122.235 –dport 1234 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT 对于基本的networking,我也得到了主机上运行的UFW允许port 1234 : Status: active Logging: on (low) Default: deny (incoming), […]
你好!! 我有一组服务器的图像中的布局附加。 让我们叫他们服务器A,B和C的情况的详细信息: 服务器A是所有处理完成的地方,用户直接在A上工作。 服务器A是一个真正的客户端。 :/ 服务器A通过以太网连接到服务器B. 它在子网中,可以在服务器B上执行操作 服务器B不能访问服务器C(安全访问受限制) 服务器C可以访问服务器B. 服务器C安装了应用程序APP。 pipe理员可以访问C,并可以启动任何程序。 但是A的用户不能访问C. 客户端A需要来自服务器C的数据。应用程序APP具有数据。 现在,我需要完成的是从客户端A访问服务器C上的应用程序APP。 我可以使用SSH端口转发来完成此操作吗? 任何解决这个问题? 感谢您的帮助!!
有没有一种方法可以确定或追踪在运行Ubuntu 14.04 LTS的系统上如何设置端口转发configuration,其中有一个NodeJS服务正在运行,并以某种方式接受通过端口80的连接,虽然服务本身在端口8080上运行,鉴于端口80连接清楚地表明Apache正在处理(请参阅下面的详细信息)? 我试图在系统上使用lsof -i :80 ,而根据lsof ,80端口上没有进程。有趣的是, ubuntu@ip-***-**-**-***:~$ sudo netstat -anp | grep apache tcp6 0 0 :::80 :::* LISTEN 10197/apache2 我确定它位于/etc/apache2/apache2.conf并且找不到任何VirtualHostlogging, ProxyPass或其他任何types的东西,我已经深入Apacheconfiguration。 我也检查了iptables -L以防万一。 httpry或类似的东西有助于找出端口转发configuration和运行的进程负责端口转发?
我有一个远程机器在example.com sshd监听端口1234和Web服务端口5678 。 由于某些原因,我想将http请求“本地化”到该Web服务。 当我执行 ssh -L 4321:example.com:5678 [email protected] -p 1234 -N 在本地计算机( 10.0.0.1 )上,我可以浏览到以下url来查看Web服务: http://localhost:4321 但是,如果我将浏览器指向: http://10.0.0.1:4321 我得到错误(错误102:net :: ERR_CONNECTION_REFUSED如果有任何区别)。 有没有办法让ip address而不是localhost的SSH端口转发? 我需要它为了使LAN上的其他计算机可以使用远程服务(10.0.0.0/24)。
情况:我有一个专用的服务器(CentOS 6)和Virtual Box中的几台虚拟机(Cent OS 7和Windows Server 2012 R2)。 几乎没有应用程序在Windows中运行,可以从主IP(XX105.20)使用mod proxy进行访问。 托pipe在Linux VM中的应用程序需要可以从不同的IP(XX109.118)(服务器的第二个IP地址)访问。 我试过了什么:到目前为止,我试图从这个SF问题的 IP转发,但应用程序无法访问。 iptables -t nat -A PREROUTING -p tcp -d XX109.118 -j DNAT –to-destination 192.168.56.102 iptables -t nat -A POSTROUTING -p tcp -d 192.168.56.102 -j SNAT –to-source XX109.118 iptables -I FORWARD -m state -d 192.168.56.102 –state NEW,RELATED,ESTABLISHED -j ACCEPT 顺便说一下,应用程序可以从Windows Guest和CentOS主机访问 编辑基于评论:我有两个域。 一些基于.net的Web应用程序正在使用其中一个域的子域在Windows […]
我正在运行Windows 2008 R2服务器,其中运行的是本地运行的各种服务,以及运行在Hyper-V上的两个虚拟服务器。 硬件服务器,我打算称之为REAL1,有一个外部网卡,我可以分配以下任何IP地址:1.2.3.4,1.2.3.5,1.2.3.6等… 我需要实现以下function:我希望能够通过远程桌面(RDP /端口3389)在一个IP地址(比如1.2.3.4)上连接到REAL1,而且还可以连接到虚拟服务器(我要打电话给他们VIRTUAL1和VIRTUAL2)在其他可用的IP地址(如1.2.3.5和1.2.3.6)。 这样做的最简单方法是直接将虚拟服务器连接到外部接口,并为它们分配各自的IP地址。 REAL1将有1.2.3.4,VIRTUAL1将有1.2.3.5,VIRTUAL2将有1.2.3.6。 不幸的是,虽然我不直接pipe理这两个虚拟服务器,但是我对它们的安全负有责任。 我想在虚拟服务器和互联网之间有一些防火墙。 我曾尝试运行虚拟机防火墙,但发现Hyper-V的性能相当可怕。 我正在尝试的另一种方法是路由和远程访问(RRAS): 我已经build立了一个名为“内部”的虚拟networking,REAL1有一个连接到这个虚拟networking的虚拟networking适配器 我也连接每个虚拟服务器到这个networking 我为每个服务器分配了这个虚拟networking的静态IP地址(REAL1有10.1.1.1,VIRTUAL1有10.1.1.2,VIRTUAL2有10.1.1.3) 我已经安装了RRAS并build立了一个NAT。 外部接口是外部网卡,内部接口是连接到内部networking的虚拟网卡 我已将所有可用的外部IP地址分配给REAL1上的外部NIC。 虚拟服务器已经正确设置,使得它们的默认网关指向10.1.1.1,并且它们都可以在外部访问。 成功! RRAS是路由数据包。 我遇到的问题是,当我尝试从REAL1上的外部IP地址端口转发服务时,它只在没有绑定到端口的服务时才起作用。 远程桌面“贪婪地”绑定到REAL1端口3389上的每个可用IP地址,所以我不能有select地将传入的通信量从1.2.3.5:3389转发到10.1.1.2:3389。 RRAS将允许我设置此端口转发,并没有出现错误。 它只是不工作。 所以我的问题是: 有没有更好的方法来做到这一点? 或者至less有解决RRAS和物理服务器上其他所有东西之间的显式冲突的方法吗?
我正试图使在一个不受我控制的路由器后面的一个linux盒子上控制一个shell。 我的第一个想法是使客户端(路由器后面的框)ssh到我控制下的服务器,并定期从cron转发本地ssh端口,如下所示: client$ ssh -L 40000:localhost:22 root@server 它适用于我私人的,安全性较低的服务器,但与客户服务器失败,这是一个危急的CentOS,2.6.24.5-grsec-xxxx-grs-ipv4-32([email protected])。 我不知道有关grsecurity的事情,尤其不是关于如何在此服务器上configuration的。 AllowTCPForwarding选项是sshd_config是默认的,据推测(如RTFM)“是”,ssh -v告诉我 debug1: Local connections to LOCALHOST:40000 forwarded to remote address localhost:22 debug1: Local forwarding listening on 127.0.0.1 port 40000. 但是当我试图从这个服务器回到客户端时,我所得到的是'连接被拒绝'。 下一个想法: 在客户端: client$ bash -i <in >out 2>err & client$ ssh root@server 'cat <client.in' >in & client$ ssh root@server 'cat >client.out' <out & client$ ssh […]
基本上,我需要的是超级类似于以下未答复的思科论坛问题: https : //supportforums.cisco.com/message/3139749#3139749 我有一个Cisco 850系列路由器。 我为10.0.0.0/24networkingconfiguration了一个DHCP池。 我从DHCP池中排除了10.0.0.1 – 10.0.0.99。 我想添加一个静态DHCP池的东西,我希望DHCP静态地分配他们的地址我的select低于100.其实,我不在乎我静态分配的地址。 对于我所关心的所有人来说,他们可以是任何东西,我只是想让它工作。 你为什么做这个? 只需静态分配设备上的IP! 我不想这样做,因为我有一些笔记本电脑用户。 他们显然只能在这里使用这个静态IP。 这不是一个问题,如果他们可能会困扰改变任何位置设置或什么的。 他们不能。 所以它必须是DHCP。 它也必须是静态IP,因为我需要将端口转发给它们。 我知道,我知道,这很奇怪,但它是一个公寓局域网/无线局域网,所以这不完全是一个典型的用例。 以下configuration的相关部分: ip dhcp excluded-address 10.0.0.1 10.0.0.99 ! ip dhcp pool Internal-net import all network 10.0.0.0 255.255.255.0 default-router 10.0.0.1 domain-name 1770.local lease 7 ! ip dhcp pool static-pool import all origin file flash://staticmap default-router 10.0.0.1 […]
问题我想知道如何隧道服务器上的请求(debian)到我的笔记本电脑上的端口80使用SSH隧道。 问题我可以用下面的命令打开一个隧道,这个命令行为并不像我想的那样: ssh -R 4445:localhost:80 [email protected] 运行这个并在example.com上获得一个shell后,下面的命令按预期执行,返回我的笔记本电脑上托pipe的网页: wget localhost:4445 但是,当试图使用example.com:4445而不是localhost:4445运行这个相同的命令时,我得到一个连接被拒绝。 额外信息:我也尝试使用shorewall写一个转发规则: DNAT net $FW:127.0.0.1:4445 tcp 4446 然后尝试 wget example.com:4446 当wget在以上任何一种情况下失败,我得到这个: –2011-02-16 13:48:26– http://example.com:4446/ Resolving example.com… 70.90.XXX.XX Connecting to example.com|70.90.XXX.XX|:4446… failed: Connection refused. 任何想法去哪里从这里? 而且,如果有不同的/更好的方法来达到这个效果,我完全接受这个想法。 编辑感谢您的build议! 试过以下几点: ssh -R example.com:4445:localhost:80 [email protected] 和 ssh -R :4445:localhost:80 [email protected] 然后当运行与上面相同的wget时,返回相同的错误。 我也许应该提到这个服务器有两个接口(eth0 public eth1 private)。 编辑 我是一个白痴:(不得不设置 GatewayPorts yes 在sshd_config中。 […]