标签: portforwarding

RTSP、RTCP 和 RTP 端口号

我试图了解spydroid(https://code.google.com/p/spydroid-ipcamera/)的工作原理,以便我可以为我的手机编写类似的应用程序。基于spydroid,这是我对RTSP、RTCP和RTP的理解。

RTSP 在指定端口上运行并设置一切。

RTCP 可以在任何端口上运行。有一个客户端端口和一个服务器端口。这是RTP的控制流程

RTP 可以在任何端口上运行。有一个客户端端口和一个服务器端口。其中包含音频和视频流。这很令人困惑,因为它似乎实际上并未在此端口上发送音频和视频。在spydroid中,它在端口5006上发送视频,在5004上发送音频。

Spydroid 正在通过 RTSP 发送此消息以确认端口...传输:RTP/AVP/UDP;单播;destination=123.456.789.00;client_port=65234-65235;server_port=44580-44581;ssrc=ba98a863;mode=play

我认为这意味着客户端(在我的例子中是 VLC)正在使用 UDP 侦听 65234 的 RTP 和 65235 的 RTCP 消息。此外,spydroid 正在侦听 44580 的 RTP 和 44581 的 RTCP。这是正确的吗?

现在,在 RTSP 的 DESCRIBE 序列中,spydroid 告诉客户端 m=video 5006 RTP/AVP 96 我认为这表明它将通过端口 5006 通过 UDP 发送视频。

我在上面的句子中所说的一切听起来都正确吗?

我真正想知道的是如何将此信息转发到正确的端口。客户端端口由 VLC 自动分配。我尝试运行这个命令... vlc "rtsp://192.168.1.104:8086" --rtp-client-port=58866 但VLC似乎忽略它并选择它自己的端口。所以我转发了端口 8086、5004 和 5006,但我不知道为 RTP 和 RTCP 连接转发哪个端口,因为它每次都会改变。我可以完成这项工作的唯一方法是将所有端口转发到我的计算机。(我有一个 linksys 路由器,它有一个 DMZ 选项)但这是一个糟糕的解决方案。有人可以指导我正确的方向吗?

另外,很高兴知道我正在这样做,因为我是通过互联网上的外部 IP 地址发送所有内容。其中spydroid旨在在局域网上使用。

android portforwarding rtp rtsp rtcp

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

Chrome 端口转发不适用于 https 端口

我浏览了这篇文章以在 chrome 中设置端口转发。

虽然我能够为非安全 (http) 端口解决这个问题,但我无法让它为安全 (https) 端口工作。在这两种情况下(http 和 https),页面都会加载到我的笔记本电脑中。只是 https 页面没有加载到我的 android 手机中。

这是http站点的配置。 http端口转发配置

在此处输入图片说明

在此处输入图片说明

这是 https 站点的配置。

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

有人可以帮忙吗?

https google-chrome portforwarding google-chrome-devtools

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

无法使用 vscode python 插件连接到远程 jupyter 服务器

要连接到以 --no-browser 选项启动的远程 jupyter 服务器,我通常会进行本地端口转发并使用 Web 浏览器连接到服务器。但是,我想使用 vscode 的 python 扩展及其“指定 Jupyter 服务器 URI”选项连接到该服务器。目前,我尝试传递相同的 url ,例如http://127.0.01:8888/notebooks/some_nb.ipynb?token=asd45366778875434.adsdsgd35331,但没有任何反应。如何在 vscode 中连接到此服务器表单?任何帮助将不胜感激。

portforwarding remote-server visual-studio-code jupyter-notebook

5
推荐指数
0
解决办法
2920
查看次数

使用 Python sshtunnel 进行端口转发剩余请求

在我的公司,我们目前有一个 REST API,只能通过特定的跳转盒访问。

我想从运行我的 Python 代码的服务器 ssh 到此框,以进行其余调用。

我在下面编写了这段代码,但是当我运行它时,它挂起并且没有执行任何操作:

from sshtunnel import SSHTunnelForwarder
import requests

remote_user = 'me'
remote_host = 'jump.box.net'
remote_port = 22
local_host = '10.30.22.218'
local_port = 443

server = SSHTunnelForwarder(
   (remote_host, remote_port),
   ssh_username=remote_user,
   ssh_private_key_password='mypassword',
   ssh_private_key='~/.ssh/mykey',
   remote_bind_address=(local_host, local_port),
   )

server.start()

r = requests.get(url = 'https://ourinternalendpoint.com/api/stuff',verify=False).content
print(r)
server.stop()
Run Code Online (Sandbox Code Playgroud)

本地主机 IP 实际上是我们的内部端点域的 IP。

我究竟做错了什么?我知道远程主机名是正确的,端口、用户、ssh-ing 的私钥和密码也是正确的。

server.start() 命令也完成。它挂在 get 请求上。

我是在 Linux 服务器上执行此操作的,如果需要,我愿意使用 Bash 为我的 Python 脚本进行端口转发。

python ssh networking portforwarding

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

kubectl 端口转发到另一个端点

是否有与kubectlto对应的命令:

ssh -L8888:rds.aws.com:5432 example.com
Run Code Online (Sandbox Code Playgroud)

kubectlport-forward,你也可以指定--address但严格要求的IP地址。

portforwarding tunnel kubernetes

5
推荐指数
3
解决办法
3911
查看次数

我们如何将端口转发到端口上已运行服务器的 QEMU?

我有一个在端口运行的Python服务器28009

python3 -m http.server 28009
Run Code Online (Sandbox Code Playgroud)

现在,在运行服务器后,我调用 QEMU 来转发端口28009

qemu-system-aarch64 -nographic -machine virt,gic-version=max -m 512M -cpu max -smp 4 \
-netdev user,id=vnet,hostfwd=tcp::28009-:28009 -device virtio-net-pci,netdev=vnet \
-drive file=ubuntu-image.img,if=none,id=drive0,cache=writeback -device virtio-blk,drive=drive0,bootindex=0 \
-drive file=flash0.img,format=raw,if=pflash -drive file=flash1.img,format=raw,if=pflash 

Run Code Online (Sandbox Code Playgroud)

它会产生一个错误:

qemu-system-aarch64: Could not set up host forwarding rule 'tcp::28009-:28009'
Run Code Online (Sandbox Code Playgroud)

同样,如果我首先运行上面的 QEMU 脚本,它会正常启动。然而,Python 服务器现在抛出一个错误:

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/usr/lib/python3.6/http/server.py", line 1211, in <module>
    test(HandlerClass=handler_class, port=args.port, …
Run Code Online (Sandbox Code Playgroud)

qemu virtual-machine portforwarding

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

如何在 Python 中使用 Kubernetes 端口转发中的套接字

提供端口转发对象

from kubernetes.stream import stream, portforward


    pf = portforward(
         k8s_client_v1.connect_get_namespaced_pod_portforward,
         pod_name,
         name_space,
         ports=port
    )
    
    pf.socket(port)
Run Code Online (Sandbox Code Playgroud)

pf是来自 family 的套接字对象AF_UNIX

我需要更好地了解是否AF_INET必须实例化另一个系列套接字才能实现与kubectl客户端相同的功能,例如:kubectl port-forward $pod_name $port

如果有人可以分享此类实现的任何片段,我预先表示感谢。

此时创建端口转发对象的灵感来自于这里

python sockets portforwarding kubernetes

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

如何强制 ngrok 转发到 http 而不是 https?

ngrok 只为我转发到 https,当其他服务尝试访问端点时,这会给出 ssl 证书错误。

大多数时候,ngrok 会转发到 httphttps,但由于某种原因,我的 ngrok 在使用以下命令后才转发到 https:ngrok http 4554 --host-header=localhost:4554

如何强制 ngrok 转发到 http 而不是 https?

portforwarding endpoint ngrok

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

Win7主机和Ubuntu服务器上的Virtualbox来宾端口转发问题

我正在尝试设置我认为是相当常见的Django开发服务器配置,但我遇到了客户操作系统和主机操作系统之间的端口转发问题.

我在跑:

  • Win7主机
  • VirtualBox 4.1.2
  • Ubuntu Server 11.04访客.

我正在使用NAT连接到VirtualBox并使用内置的VirtualBox端口转发功能(来自访客的设置 - >网络 - >端口转发菜单),以便我的.vbox XML包含以下部分:

<NAT>
        <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
        <Alias logging="false" proxy-only="false" use-same-ports="false"/>
        <Forwarding name="guestdjango" proto="1" hostip="127.0.0.2" hostport="9080" guestport="8080"/>
        <Forwarding name="guesthttp" proto="1" hostip="127.0.0.2" hostport="8080" guestport="80"/>
        <Forwarding name="guestssh" proto="1" hostip="127.0.0.2" hostport="2222" guestport="22"/>
</NAT>
Run Code Online (Sandbox Code Playgroud)

从主机,我可以SSH/SFTP到2222端口的guest,我可以看到nginx"欢迎来到nginx!" 在127.0.0.2:8080.

在验证这些之后,我设置了Django并运行Django runsever:

python manage.py runserver 127.0.0.1:8080
Run Code Online (Sandbox Code Playgroud)

来自嘉宾的Lynx,我在127.0.0.1:8080获得了"祝贺"Django页面.

但是,当我从主机导航到127.0.0.2:9080时,我得到"连接已重置".

django virtualbox portforwarding ubuntu-11.04

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

如何正确实现Net :: SSH端口转发

我一直试图使端口转发与Net :: SSH一起正常使用。据我了解,如果我希望能够从同一个Ruby程序中使用Net :: SSH会话,则事件处理循环实际上可以处理通过连接发送的数据包。但是,这会导致您在下面看到的丑陋:

#!/usr/bin/env ruby -w
require 'net/ssh'
require 'httparty'
require 'socket'
include Process

log = Logger.new(STDOUT)
log.level = Logger::DEBUG

local_port = 2006
child_socket, parent_socket = Socket.pair(:UNIX, :DGRAM, 0)
maxlen = 1000
hostname = "www.example.com"

pid = fork do
  parent_socket.close
  Net::SSH.start("hostname", "username") do |session|
    session.logger = log
    session.logger.sev_threshold=Logger::Severity::DEBUG
    session.forward.local(local_port, hostname, 80)
    child_socket.send("ready", 0)
    pidi = fork do
      msg = child_socket.recv(maxlen)
      puts "Message from parent was: #{msg}"
      exit
    end
    session.loop do
      status = waitpid(pidi, Process::WNOHANG)
      puts "Status: #{status.inspect}"
      status.nil? …
Run Code Online (Sandbox Code Playgroud)

ruby port portforwarding forward net-ssh

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