标签: portforwarding

UDP服务器到客户端通信 - UDP是无状态的,如何绕过路由器?

在最近的一系列问题中,我已经提出了很多关于UDP,boost :: asio和c ++的问题.

我在Stackoverflow上似乎没有答案的最新问题是:

在客户机/服务器应用程序,这是相当好的,要求服务器在防火墙中打开一个端口,这样的消息被允许在.不过,这样做同样的客户端是绝对不是一个很好的用户体验.

TCP连接通常实现这一点,因为大多数路由器支持有状态数据包检查,如果原始请求来自本地主机,则允许响应数据包通过.

我不太清楚它如何与UDP一起工作,因为UDP是无状态的,并且没有"响应数据包"(据我所知).我应该如何在我的客户端应用程序中解释这一点?

谢谢你的回答!

client router udp portforwarding

1
推荐指数
1
解决办法
2321
查看次数

使用服务器绕过路由器以启动连接

我想用Java创建简单的聊天程序,它可以在p2p的基础上工作.使用公共服务器仅启动连接.但我甚至不确定这是可能的.

我成功地实现了Java中的聊天解决方案,如果至少有一台PC转发了正确的端口,那么它就可以工作.我还设法使用外部服务器而不必在客户端转发端口.

因此,我甚至可能以某种方式使用公共服务器启动连接,而不是在客户端之间发送数据,从服务器上卸载?

我不太熟悉路由器如何工作,但我希望当你从内部IP呼叫公共服务器时,路由器会记住来自该公共IP的呼叫和传入响应,而不是发送到你的PC.所以我想,也许如果第一个客户端连接到服务器,服务器而不是将信息传递给第二个客户端,也许他们可以以某种方式直接通信?路由器中的规则是否由服务器建立?

我希望我能清楚地解释清楚.如果没有,请原谅.我甚至都不知道这是怎么做到的,我只是想知道我的概念是否有正确的东西,而且我必须更加努力地学习它.谢谢.

p2p portforwarding hole-punching

1
推荐指数
1
解决办法
1215
查看次数

将本地 NodeJS 变成在线服务器

我想从远程(不在同一网络中)访问我的 nodejs 服务器。我不知道我需要在此表格中申请哪些数据,有人可以帮助我吗?

节点端口:3000 在此处输入图片说明

谢谢!

portforwarding node.js

1
推荐指数
1
解决办法
1599
查看次数

在 Vagrant 上运行 Consul:从来宾到主机的端口转发在 Mac OS X 上不起作用

我想使用 Vagrant 在我的本地机器(Mac OS X)上设置一个带有 UI 的 Consul 集群。到目前为止,我只是按照官方领事文档的入门说明进行操作:https : //www.consul.io/intro/getting-started/join.html

为了能够从主机访问 UI,我只是将这一行添加到提供的 Vagrantfile ( https://github.com/hashicorp/consul/blob/master/demo/vagrant-cluster/Vagrantfile )

n1.vm.network "forwarded_port", guest: 8500, host: 8500
Run Code Online (Sandbox Code Playgroud)

要在来宾机器上使用 UI 启动 Consul,我 ssh 进入机器,然后简单地将 -ui 标志添加到提供的命令中:

consul agent -server -bootstrap-expect=1 \
    -data-dir=/tmp/consul -node=agent-one -bind=172.20.20.10 \
    -enable-script-checks=true -config-dir=/etc/consul.d -ui
Run Code Online (Sandbox Code Playgroud)

Consul 启动时没有问题,从我可以执行的来宾机器开始:

curl -v 'http://localhost:8500/ui/'
Run Code Online (Sandbox Code Playgroud)

并返回预期的 HTML 页面。

但是,尝试http://localhost:8500/ui/在浏览器中访问或通过主机上的 curl访问不起作用。在主机上使用 curl 会导致:

*   Trying ::1...
* TCP_NODELAY set
* Connection failed
* connect to ::1 port 8500 failed: Connection refused
*   Trying 127.0.0.1...
* …
Run Code Online (Sandbox Code Playgroud)

macos portforwarding vagrant consul

1
推荐指数
1
解决办法
745
查看次数

SSH 端口转发:绑定:地址已在使用中

我有一个远程服务器,我想对其进行 ssh 并将我的本地端口转发到其中。

我的应用程序在我的本地计算机上托管端口 443。我正在使用连接到服务器gcloud。这是命令:

gcloud compute --project "**^" ssh --zone "***" "***"
Run Code Online (Sandbox Code Playgroud)

目标是允许其他人在端口 9000 上与服务器进行通信,并且此流量将重定向到我的本地计算机的端口 443 上。换句话说,在端口 9000 上访问服务器相当于在端口 443 上访问我的计算机。

所以我做ssh端口转发

gcloud compute --project "**^" ssh --zone "***" "***" -- -L 443:127.0.0.1:9000 -N
Run Code Online (Sandbox Code Playgroud)

并返回此错误:

bind: Address already in use
channel_setup_fwd_listener_tcpip: cannot listen to port: 443
Could not request local forwarding.
Run Code Online (Sandbox Code Playgroud)

我做错了什么?

ssh portforwarding ssh-tunnel gcloud

1
推荐指数
1
解决办法
2万
查看次数

如何访问 istio 创建的仪表板

我在没有 helm 的情况下在kubernetes上安装了istio

我可以看到 Pod 和服务是在 istio-system 命名空间中创建的。

所有服务(如grafana、Prometheus)都会被创建,并且它们的端口不会暴露。

由于创建了负载均衡器服务,因此在 AWS 中也创建了一个负载均衡器,我想通过新创建的负载均衡器端点从外部网络访问 grafana、prometheus 等仪表板,但无法从负载均衡器端点访问该仪表板。

我尝试了 istio 文档推荐的端口转发:

kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 & 
Run Code Online (Sandbox Code Playgroud)

这些仅适用于http://localhost:3000 ,但无法通过http://publicip:3000访问

NAME                     TYPE           CLUSTER-IP       EXTERNAL-IP                                                              PORT(S)                                                                                                                                      AGE
grafana                  ClusterIP      172.20.192.71    <none>                                                                   3000/TCP                                                                                                                                     1m
istio-citadel            ClusterIP      172.20.111.103   <none>                                                                   8060/TCP,15014/TCP                                                                                                                           1m
istio-egressgateway      ClusterIP      172.20.123.112   <none>                                                                   80/TCP,443/TCP,15443/TCP                                                                                                                     1m
istio-galley             ClusterIP      172.20.45.229    <none>                                                                   443/TCP,15014/TCP,9901/TCP                                                                                                                   1m
istio-ingressgateway     LoadBalancer   172.20.94.157    xxxx-yyyy.us-west-2.elb.amazonaws.com   15020:31336/TCP,80:31380/TCP,443:31390/TCP,31400:31400/TCP,15029:32146/TCP,15030:30126/TCP,15031:31506/TCP,15032:30501/TCP,15443:31053/TCP   1m
istio-pilot              ClusterIP      172.20.27.87     <none> …
Run Code Online (Sandbox Code Playgroud)

linux portforwarding amazon-web-services kubernetes istio

1
推荐指数
1
解决办法
1931
查看次数

如何通过 Jumphost 转发 k8 pod 的端口

我可以通过 ssh 进入跳转主机,从那里我可以访问 k8 集群。有一个特定的 pod,其 UI 暴露在端口 4040 上,我如何在本地浏览器上查看它?

到目前为止,通过执行以下命令我已经弄清楚了

kubectl port-forward podName 4040:4040
Run Code Online (Sandbox Code Playgroud)

我现在可以在 Jumphost 上访问 UI(通过基于文本的浏览器)

portforwarding kubernetes devops kubectl

1
推荐指数
1
解决办法
1795
查看次数

Netcat 使用的端口与请求的端口不同

我有以下问题。我正在使用 Debian GNU/Linux Stretch,并尝试使用 netcat 作为简单的服务器。我使用以下命令启动它:

$ netcat -l 127.0.0.1 33333
Run Code Online (Sandbox Code Playgroud)

它启动得很好并接受连接,但端口与请求的端口不同:

$ netstat -tulpn | grep netcat
tcp        0      0 0.0.0.0:38782           0.0.0.0:*               LISTEN      2851/netcat    
Run Code Online (Sandbox Code Playgroud)

此行为与请求的端口、用户或 ufw 状态无关。最近我用以下软件包安装了 LXC:

  • 阿帕莫尔
  • 桥接工具
  • CG经理
  • libapparmor-perl
  • 长沙

后来所有内容都被删除了,但不知何故,我觉得这种行为可能与配置中的一些更改有关。

linux portforwarding netcat

0
推荐指数
1
解决办法
736
查看次数

连接到在无业游民计算机上运行的Node JS服务器

node http servervagrantVM 上运行很简单。我想用我本地计算机上的浏览器解决这个问题。

varhttp=require("http");

http.createServer(function(request,response){
    response.writeHead(200, {"Content-Type": "text/plain"});
    response.write("Hello World");
    response.end();
}).listen(3000);
Run Code Online (Sandbox Code Playgroud)

这是我的Vagrantfile:

VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    config.vm.box = "ubuntu/xenial64"
    config.vm.network "forwarded_port", guest: 80, host: 8080
    config.vm.provision "shell", path: "config.sh"
end
Run Code Online (Sandbox Code Playgroud)

我不知道如何从浏览器中解决它。

每当我curl localhost:3000在无所事事的VM中执行操作时,都会收到Hello world消息。

正如流浪转发中所建议的,This site can’t be reached每当我尝试打开时localhost:8080,我都会从我的本地机器上得到。

virtualbox localhost portforwarding node.js vagrant

0
推荐指数
1
解决办法
2147
查看次数

为什么端口转发在我的网络中不起作用?

我试图在我的路由器(ZTE F660)中启用端口转发,但由于某种原因它根本不起作用。首先,我在 ubuntu 计算机中启动了服务器应用程序,并将其 IP 地址固定为 192.168.1.2。然后,我设置规则如下:

它不起作用。因此,我尝试在路由器设置中禁用防火墙:

在此输入图像描述

它也不起作用,然后我通过输入以下内容禁用了主机的防火墙:

sudo ufw disable
Run Code Online (Sandbox Code Playgroud)

但这没有用。然后,我尝试使用许多不同的端口,但没有成功!:(

我尝试使用一些端口转发测试器(例如:https: //hidemy.name/en/port-scanner/),它总是说端口的状态是“已过滤”。我打电话给我的互联网提供商,他们说端口转发应该运行,但他们没有提供技术帮助。谁能帮我这个?无法思考还有什么可做的。

port networking router firewall portforwarding

-1
推荐指数
1
解决办法
4034
查看次数