我试图让端口转发在一台机器上工作。我在这里阅读了许多有关该问题的主题,但我无法让它发挥作用。计划是将端口 5000 上 ppp0 上的所有传入流量转发到 eth0 上的设备。以下是我尝试过的规则(从该网站收集):
iptables -t nat -A PREROUTING -p tcp -i ppp0 --dport 5000 -j DNAT --to-destination 192.168.5.242:5000
iptables -A FORWARD -p tcp -d 192.168.5.242 --dport 5000 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -j MASQUERADE -o ppp0
Run Code Online (Sandbox Code Playgroud)
那行不通。接下来的尝试是这样的:
iptables -A PREROUTING -t nat -i ppp0 -p tcp --dport 5000 -j DNAT --to 192.168.5.242:5000
iptables -A INPUT -p tcp -m state --state NEW --dport 5000 -i ppp0 -j ACCEPT
iptables -t nat …Run Code Online (Sandbox Code Playgroud) 我有一个具有真实 IP 的测试 VDS 盒子。如果我在物理接口端口 80 上启动 Web 服务器,则可以通过其 IP 地址(和默认端口 80)从另一台计算机打开它:
python -m SimpleHTTPServer 80
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试将端口 80 从物理接口重新定向eth0到环回 127.0.0.1 端口 8080,我可以从端口 8080 上的另一台计算机连接它,但无法在端口 80 上连接,这只是无休止的“连接”。似乎没有发生重定向:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080
python -m SimpleHTTPServer 8080
Run Code Online (Sandbox Code Playgroud)
我做错了什么?:(
PS “127.0.0.1:8080”上的绑定服务器产生相同的结果,但这并不重要,因为在“0.0.0.0:8080”上运行的服务器将接受重定向到“127.0.0.1:8080”的连接。AFAIK。:(
iptables -L结果:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination …Run Code Online (Sandbox Code Playgroud) 我有 3 台机器,它们连接成一条链,A、B、C。
A-->B-->C
Run Code Online (Sandbox Code Playgroud)
A 是我的机器,B 是服务器,C 是其他机器,上面有一些服务和 Web 服务器。由于一些问题,我需要从A访问C上的Web服务器(端口80),我可以使用ssh从A登录到B,然后从B登录到C,但此时控制台太少了。我需要网络浏览器,并且使用带选项的 ssh-X不起作用(Firefox 启动时 dbus 出现一些问题)。
我使用经典命令在 B 上进行端口转发,为 ssh 转发 22 端口:
ssh -L 2222:localhostB:22 user@ipC
Run Code Online (Sandbox Code Playgroud)
但使用相同的方法转发端口 80 不起作用:
ssh -L 8888:localhostB:80 user@ipC
Run Code Online (Sandbox Code Playgroud)
我知道还有其他一些转发可以使其工作,但我不明白如何以及什么。
我需要这样的东西:
A --> B (frd from B:8888 to C:80) --> C (port 80 web server)
Run Code Online (Sandbox Code Playgroud)
因此,当我输入 ipB:8888 时,我将被转发到 C:80。
任何解释必须做什么的帮助或带有命令的脚本将不胜感激。我从一篇博客中注意到必须完成两次ssh -L转发,但我不明白为什么。
我的 ~/.ssh/config 包含:
ControlMaster auto
ControlPath ~/.ssh/socket-%r@%h:%p
Host hostname.example
# TextMate rmate port
RemoteForward :52698 localhost:52698
Run Code Online (Sandbox Code Playgroud)
当我与主机建立初始连接时,它成功创建了位于 的主套接字文件~/.ssh-lachlanhunt@hostname.example:22。
但是当我打开一个新终端并尝试建立第二个连接时,我收到此错误:
$ ssh hostname.example
mux_client_forward: forwarding request failed: remote port forwarding failed for listen port 52698
muxclient: master forward request failed
ControlSocket /Users/lachlanhunt/.ssh/socket-lachlanhunt@hostname.example:22 already exists, disabling multiplexing
Warning: remote port forwarding failed for listen port 52698
Run Code Online (Sandbox Code Playgroud)
但是,如果我注释掉RemoteForward配置中的行,它就能够成功地重用连接,从而使其连接速度更快。有什么方法可以配置 ssh 以支持多路复用连接并启用远程端口转发,这样它仅在主连接时尝试转发端口?
我的系统:
我的服务在端口 30000-32000 上的 VPS A(1.1.1.1) 上运行。
我想要 VPS B(2.2.2.2) 将它们端口转发到 20000-22000。
(您可以查看下面的演示图链接以了解我想要实现的目标:D)
我使用下面的命令来设置 iptables:
iptables -t nat -A PREROUTING -p tcp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p tcp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000
iptables -t nat -A PREROUTING -p udp --dport 20000:22000 -j DNAT --to-destination 1.1.1.1:30000-32000
iptables -t nat -A POSTROUTING -p udp -d 1.1.1.1 --dport 30000:32000 -j SNAT --to-source 2.2.2.2
20000:22000
Run Code Online (Sandbox Code Playgroud)
经过一些测试,我发现似乎只有20000端口转发了原服务器的30000端口。但是其他端口都不起作用。
我检查了以下 4 件事: 1. VPS A …
我正在运行一个小臂板,在我们的本地网络内提供一些服务。当我尝试了解 docker 对 ipv6 的支持时,我对第一次测试的结果感到非常困惑。
我的网络由使用 dhcpv6 的单个路由控制,每个客户端都有 2 个有效的全局 ipv6 地址(还有 1 个本地 ipv4),并受到路由器防火墙的保护(不允许从互联网到客户端的请求)。
Arm 板运行的是 ubuntu 16.04,具有有效的 ipv6 地址并启用了隐私扩展。
所有docker容器都使用默认的桥接网络,没有任何调整。
在docker主机上
netstat -tulpen|grep docker
Run Code Online (Sandbox Code Playgroud)
节目
tcp6 0 0 :::8080 :::* LISTEN 0 22490 1559/docker-proxy
Run Code Online (Sandbox Code Playgroud)
没有一个 ipv4 服务正在侦听。
在这个 docker 容器内,相同的 netstat 请求给出
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 23955 8/nginx
tcp6 0 0 :::80 :::* LISTEN 0 23956 8/nginx
Run Code Online (Sandbox Code Playgroud)
Nginx 正在侦听 ipv6 和 ipv4 - 端口 80 暴露给端口 8080
docker run (...) -p 8080:80 (...)
Run Code Online (Sandbox Code Playgroud)
检查桥接网络
docker …Run Code Online (Sandbox Code Playgroud) 概括:
我有一个运行 kubectl port-forward 的 docker 容器,将作为 k8s 服务运行的 postgres 服务的端口 (5432) 转发到本地端口 (2223)。在 Dockerfile 中,我暴露了相关端口 2223。然后我通过发布该端口来运行容器 ( -p 2223:2223)
现在,当我尝试通过访问 postgres 时psql -h localhost -p 2223,出现以下错误:
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
Run Code Online (Sandbox Code Playgroud)
但是,当我docker exec -ti对上述容器执行操作并运行上述 psql 命令时,我能够连接到 postgres。
Dockerfile 命令:
EXPOSE 2223
CMD ["bash", "-c", "kubectl -n namespace_test port-forward service/postgres-11-2 2223:5432"]
Run Code Online (Sandbox Code Playgroud)
Docker 运行命令:
docker run -it --name=k8s-conn-12 -p 2223:2223 my_image_name:latest
Run Code Online (Sandbox Code Playgroud)
docker …
我可以使用它的内部 IP 地址(如 192.168.10.2)从我的家庭网络中通过 SSH 连接到我的 linux 机器。或者从外部,我可以通过我的路由器上的端口转发通过我的外部 IP 地址(如 74.23.43.98)进行连接,我已设置将端口 22 上的传入连接转发到内部地址 192.168.10.2。但是,如果我在家,则无法通过外部 IP 地址进行连接。这仅适用于我的网络外部。这是普遍真实的还是我的特定摩托罗拉路由器的特点?
谢谢
我想从外部机器访问在我的办公室防火墙后面的 Web 服务器上运行的 Web 应用程序。
我们有一个运行 sshd 的堡垒主机,它可以从 Internet 访问。
我想知道这个解决方案是否是一个坏主意:
我知道如果我的 RSA 私钥被泄露,那么有人可以通过 ssh 连接到堡垒主机。但是这个解决方案是个坏主意还有其他原因吗?
谢谢你!
我服务器上的每个端口都被阻止,除了端口 222 也是 ssh 连接。这台服务器几乎是一个备份服务器,我的客户端 rsync 到它。
我通过使用 ssh 的端口转发 ( -P 222 -L 873:myserver.com:873) 来做到这一点,但是,我只想使用 rsync 命令来做到这一点。那可能吗?
这是我一直在尝试的:
sudo rsync -avv --progress --inplace --rsh='ssh -p 222 -L 873:myserver.com:873' . rsync://bt-backup@localhost/backup-bt-backup
Run Code Online (Sandbox Code Playgroud)
但它不起作用,因为我尝试登录本地主机,而不是 myserver.com。
正在做:
sudo rsync -avv --progress --inplace --rsh='ssh -p 222 -L 873:myserver.com:873' . rsync://bt-backup@myserver.com/backup-bt-backup
Run Code Online (Sandbox Code Playgroud)
让我通过 ssh 登录,但 rsync 尝试远程主机而不是端口已转发的本地主机
port-forwarding ×10
ssh ×5
iptables ×3
docker ×2
firewall ×1
ipv6 ×1
kubectl ×1
kubernetes ×1
linux ×1
netstat ×1
psql ×1
router ×1
rsync ×1
security ×1
ssh-tunnel ×1