可能的重复:
如何使用 DNS 将域重定向到我服务器上的特定端口
我的 Web 应用程序在 myserver.mydomain:10000 上运行 我想让它作为 mywebapp.mydomain 在 Intranet 上可用。
阅读Forward port to another Ip/port,我研究了 rinetd,但我不完全理解我如何实现我的目标:
这将重定向所有http 流量。
我的理解好像有点偏差。谁能帮我 ?
我想转发多个端口。
此命令运行我的 VM 并成功转发 RDP 端口:
qemu-system-i386 -net nic,model=rtl8139 -net user,hostfwd=tcp::3389-:3389 -m 512M -localtime -cpu core2duo,+nx -smp 2 -usbdevice tablet -k en-us -hda win.img -nographic
Run Code Online (Sandbox Code Playgroud)
尝试了其他命令,但没有运气,它们似乎都很糟糕:
qemu-system-i386 -net nic,model=rtl8139 -m 512M -localtime -cpu core2duo,+nx -smp 2 -usbdevice tablet -k en-us -hda win.img -nographic -redir tcp:443::443,tcp:992::992,tcp:1194::1194,tcp:5555::5555,udp:1194::1194,udp:500::500,udp:4500::4500,tcp:3389::3389
qemu-system-i386 -net nic,model=rtl8139 -net user,hostfwd=tcp::3389-:3389,tcp:443::443,tcp:992::992,tcp:1194::1194,tcp:5555::5555,udp:1194::1194,udp:500::500,udp:4500::4500 -m 512M -localtime -cpu core2duo,+nx -smp 2 -usbdevice tablet -k en-us -hda win.img -nographic
Run Code Online (Sandbox Code Playgroud)
正确的例子将非常受欢迎。谢谢你。
好的,这个任务应该很简单,但我无法让它工作。我想在我的域名之后(实际上是在该域名的 IP 之后)有一个子文件夹,它重定向到同一服务器上的特定端口。本质上,我想摆脱必须使用许多端口的情况。
这是我的 nginx 配置
server {
listen 80;
index index.html index.htm index.nginx-debian.html index.php;
server_name aaa.bbb.ccc.ddd;
location ^~ /app2 {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://aaa.bbb.ccc.ddd:8001;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,在访问 aaa.bbb.ccc.ddd/app2 时,我希望将其解析为http://aaa.bbb.ccc.ddd:8001。
这可能会很复杂。我在这里缺少什么?
谢谢帕特
本地 Vagrant 机器安装在10.0.0.23主机名的IP 地址上lamp-vm。
使用vagrant ssh命令,我可以正常连接并做我需要的一切。
这会产生错误
$ ssh vagrant@lamp-vm -v -v
debug1:连接到地址 10.0.0.23 端口 22:连接超时
ssh:连接到主机 lamp-vm 端口 22:连接超时
我的/etc/hosts文件包含10.0.0.23 lamp-vm.
我的 .ssh/config 文件看起来像
主机 lamp-vm
用户 vagrant
IdentityFile ~/.ssh/vagrant
我也尝试过使用和不使用 ssh 命令-i /path/to/.sh/identity_file。
如何使用 SSH 连接到我的 Vagrant 虚拟机?
我刚刚发现了 OpenSSH 的 ControlMaster/ControlPath 功能,它允许您使用单个 SSH 连接来运行多个终端。
由于我经常使用 SSH 来使用端口转发来获得加密和经过身份验证的 VNC 会话,我立即意识到您无法将端口转发添加到已经建立连接的远程服务器。这很糟糕。
有时后来我发现您可以通过在正在运行的 SSH 终端会话中键入 ~C 来规避此限制。这将打开一个命令行,允许您添加或删除端口转发。
我现在的问题是:如何在使用 ControlMaster/ControlPath 功能的现有 SSH 会话上添加端口转发,而无需访问该 SSH 会话中的终端会话。我需要这个来启用我的脚本,该脚本启动一个安全的隧道 VNC 连接,以便我添加并稍后删除其端口转发。
(我知道我可以使用终端多路复用器,例如 GNU Screen 或 tmux,实际上我已经在这样做了。但出于多种原因,我喜欢只使用一个 SSH 会话的想法。)
I'm trying to forward an FTP-server with IPTables. The FTP-Server is running on a Windows 2008 box (Cerberus).

Details Win Box:
The FTP-server works great in LAN.
The router is working fine for other clients (Serving NAT, DHCP, Firewall,...). I need to forward the FTP-service to the outside world, but I can't use ports 20-21 (already taken).
I tried this, but it didn't work:
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport …Run Code Online (Sandbox Code Playgroud) 我有三台机器:一台本地 PC(公共 IP 1.2.3.4)、数据中心中的 Ubuntu 10 服务器盒(5.6.7.8 公共 IP 上的 eth0),以及托管我网络外部网站的第三方服务器(假设216.34.181.45 上的斜杠)。
我如何修改这个 iptables 规则,以便所有进入这台计算机的流量都将转发到 192.168.42.10?
iptables -t nat -A PREROUTING -s 192.168.46.0/24 -p tcp --dport 80 -j DNAT --to-destination 192.168.42.10:80
Run Code Online (Sandbox Code Playgroud)
问题是我从ansible创建ip表规则并在不同的环境中创建它,其中ip地址范围不同,但我想总是将80端口转发到192.168.42.10。
我的端口转发有一些问题。NAT 似乎工作正常,一个端口转发似乎工作(udp 端口 7887 到机器 192.168.1.100)。但不是其他人。
我怀疑这是否重要,但 eth1 和 eth2 位于双端口 NIC 上。
WAN 互联网访问由 dhcp 提供,因此如果可能,解决方案应该独立于 WAN_IP。
/opt/firewall.sh
#!/bin/sh
WAN="eth1"
LAN="eth2"
#ifconfig $LAN up
#ifconfig $LAN 192.168.1.1 netmask 255.255.255.0
echo 1 > /proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.ip_forward=1
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A INPUT -i $LAN …Run Code Online (Sandbox Code Playgroud) 我有一个 LXC 容器 ( 10.0.3.2) 在主机上运行。服务正在容器内的端口上运行7000。
从主机 ( 10.0.3.1, lxcbr0),我可以访问服务:
$ telnet 10.0.3.2 7000
Trying 10.0.3.2...
Connected to 10.0.3.2.
Escape character is '^]'.
Run Code Online (Sandbox Code Playgroud)
我想让外部世界可以访问在容器内运行的服务。因此,我想7002将主机上的端口转发到7000容器上的端口:
iptables -t nat -A PREROUTING -p tcp --dport 7002 -j DNAT --to 10.0.3.2:7000
Run Code Online (Sandbox Code Playgroud)
结果是 ( iptables -t nat -L):
DNAT tcp -- anywhere anywhere tcp dpt:afs3-prserver to:10.0.3.2:7000
Run Code Online (Sandbox Code Playgroud)
尽管如此,我仍无法使用转发端口从主机访问该服务:
$ telnet 10.0.3.1 7002
Trying 10.0.3.1...
telnet: Unable to connect to remote host: Connection refused
Run Code Online (Sandbox Code Playgroud)
我觉得我在这里错过了一些愚蠢的东西。我应该检查哪些事项?调试这些情况的好策略是什么?
为了完整起见,这里是如何iptables …
port-forwarding ×10
iptables ×5
nat ×2
ssh ×2
ftp ×1
localhost ×1
lxc ×1
multiplexing ×1
nameserver ×1
nginx ×1
port ×1
qemu ×1
security ×1
vagrant ×1
vnc ×1