标签: portforwarding

在SSH隧道中创建转发端口

我正在尝试使用SSH.NETlocalhost:3306远程计算机上的端口3306 创建隧道:

  PrivateKeyFile file = new PrivateKeyFile(@" .. path to private key .. ");
  using (var client = new SshClient(" .. remote server .. ", "ubuntu", file))
  {

      client.Connect();
      var port = new ForwardedPortLocal(3306, "localhost", 3306);
      client.AddForwardedPort(port);
      port.Start();

            // breakpoint set within the code here

      client.Disconnect();
  }
Run Code Online (Sandbox Code Playgroud)

当断点被击中时,client.IsConnected返回true,但telnet localhost 3306没有连接.如果我使用Putty创建连接,并在那里设置相同的隧道,它就会成功.我错过了什么?

c# ssh portforwarding ssh.net

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

Mysql的Vagrant端口转发

我试图在Vagrantfile中设置端口转发以从主机系统连接到guest mysqld,但是得到reading initial communication packet错误.主持人:Yosemite,嘉宾:Trusty,vagrant 1.7.4

Vagrantfile(主持人):

config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 3306, host: 3309
Run Code Online (Sandbox Code Playgroud)

my.ini文件(游客):

bind-address            = 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

8080转发就像一个魅力.

mysql -h127.0.0.1 -uroot -p 来自客人也工作.

mysql -h127.0.0.1 -P 3309 -uroot -p来自主机结果有reading initial communication packet错误.

当我从主机telnet时,连接立即关闭:

$ telnet localhost 3309
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

当我从主机ssh到vagrant box时,端口转发工作:

$ssh vagrant@127.0.0.1 -p 2222 -L3308:localhost:3306 
Run Code Online (Sandbox Code Playgroud)

然后我可以mysql -h127.0.0.1 -P3308 -uroot -p毫无问题地从主机连接,我将其用作临时解决方法.

mysql portforwarding vagrant vagrantfile

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

Ansible多个主机端口转发

我有多个主机的主机库存,每个主机都有端口转发,主机文件是:

[all]

10.80.238.11:20003

10.80.238.11:20001

10.80.238.11:20007

10.80.238.11:20009
Run Code Online (Sandbox Code Playgroud)

我试图用剧本来ping它们,但是在这种情况下总是从第一次输入获得响应而10.80.238.11:20003不是来自其他人.身份验证已经到位,无论我移动到第一个位置的主机我都得到了响应而不是其他人,我的剧本是:

---
- hosts: all

  remote_user: root

  gather_facts: no

  tasks:

  - name: test connection

    ping:
Run Code Online (Sandbox Code Playgroud)

知道怎么解决这个???

python networking portforwarding ansible ansible-playbook

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

Android USB调试端口前向错误

我有android远程调试端口转发的问题.我需要在44300-44399范围内获得端口,因为Visual Studio调试只允许在这些端口上使用SSL,但即使文档说它应该可以在1024-65535的任何端口上工作,我仍然无法转发这些端口.任何人遇到这个或知道我怎么能弄清楚为什么端口不转发?我知道连接在那里,因为其他端口工作正常.在此输入图像描述

android portforwarding android-webview google-chrome-devtools android-remoteview

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

为什么我的服务总是绑定到ipv6 localhost而不是ipv4?

我有一个创建ServerSocket并绑定到的服务localhost:7060.当我在我的Android设备上执行"netstat -an"时,我发现它使用的是ipV6 localhost而不是ipv4 localhost接口.

输出如下:
tcp6 0 0 :: ffff:127.0.0.1:7060 :::*LISTEN

使用ipV4的端口如下所示:
tcp 0 0 127.0.0.1:5060 0.0.0.0:*LISTEN

强制它总是使用IPv4的诀窍是什么?我正在使用iptables设置端口转发规则.我的版本支持ipv4目标地址.

这就是我如何创建用于侦听端口的Java代码.

InetAddress localAddress = Inet4Address.getByName("localhost"); //InetAddress localAddress = Inet4Address.getLocalHost(); sockServer = new ServerSocket(nPort, 20, localAddress);

我遵循其他建议,比如设置系统属性,在我的服务启动时更喜欢ipV4.这没有任何区别.

System.setProperty("java.net.preferIPv4Stack", "true");

我是在为嵌入式设备构建的Android 2.3上运行的.

更新:我检查了android树中的InetAddress.java源代码.它正在读取上面的标志,如下所示.

static boolean preferIPv6Addresses() {
        String propertyName = "java.net.preferIPv6Addresses";
        String propertyValue = AccessController.doPrivileged(new PriviAction<String>(propertyName));
        return Boolean.parseBoolean(propertyValue);
    }
Run Code Online (Sandbox Code Playgroud)

现在我不确定System.setProperty()调用是否真的改变了上面代码读取的值.

sockets android iptables localhost portforwarding

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

将servlet请求转发给另一台服务器

Java Servlet API可以将请求转发到同一服务器(相同的主机:端口)中的另一个路径.但是,转发到另一个主机:端口 - 就像代理做 - 是另一个故事.

我试图用Jersey Client做这件事,将ServletRequest - 方法,标题,mediatype和body调整到Jersey ClientRequest(使用不同的基础uri),进行调用,并调整Jersey ClientResponse - 方法,标题, mediatype和body - 到ServletResponse.

手动调整这些对我来说似乎不对.

是不是有纯粹的Servlet API解决方案?或者是一个HTTP客户端,能够在更改host:port时来回调整请求?

servlets http jersey portforwarding

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

自动端口转发(UPnP?)C++

免责声明: 我在这里仔细阅读了所有类似主题,并进行了谷歌搜索.没有回答我的问题,所以我想在这个主题中积累信息.PS我的英语可能不太好,抱歉.

我想制作一个p2p应用程序(游戏).显然很多人会在一台机器上运行这个程序,这台机器是本地网络的一部分,有一个互联网接入点(路由器),如果没有端口转发,应用程序就无法运行.所以,我做了一项研究,发现我可以使用UPnP进行自动端口转发.编写微测试代码以访问端口转发:

bool CPortController::Init() {


  HRESULT result = CoInitialize(NULL); // Must be NULL
  if (FAILED(result)) return false;

  result = CoCreateInstance(__uuidof(UPnPNAT), NULL, CLSCTX_ALL, __uuidof(IUPnPNAT), (void **)&Nat);
  if (FAILED(result) || !Nat) return false;

  result = Nat->get_StaticPortMappingCollection(&Collection); 
  if (FAILED(result) || !Collection) return false; // Here I'm getting S_OK as result, but Collection is always == 0

  return true;
}
Run Code Online (Sandbox Code Playgroud)

搜索到的原因(参见代码注释)发现我发现:1.旧系统(不,我有Win7更新)2.路由器可能没有UPnP功能或者可能没有启用3.防火墙可能阻塞TCP端口2869或UDP端口1900都是UPnP所需的

可悲的是,我没有访问路由器来检查最后2,但它并不重要,因为Skype和uTorrent(两个p2p)完美运行.我需要找到使用我的应用程序自动执行相同技巧和转发端口的方法,而无需要求用户执行任何操作.

关于UPnP库: 我发现很少有UPnP库(PlatinumUPnP,miniUPnP),但他们似乎有很多代码可以找到智能设备并将它们组合在一起......呃...我不确定我需要这个完成我的任务,我找不到一段代码(不使用上面列出的那些WinUPnPAPI)进行自动端口转发.

我现在有点迷路了.谁能告诉我继续研究的方向?也许除了UPnP还有别的东西吗?也许有一个lib(我错过了)使用?请点亮一些光.先感谢您.

c++ upnp portforwarding

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

Chrome DevTools端口转发不适用于高端口号

在此输入图像描述

在Android上调试Web应用程序时,Chrome DevTools的端口转发功能适用于数量较少的端口.但是,高端口号(例如51262)对我不起作用.如何获得高端口号码?

默认情况下,Visual Studio对Web应用程序使用如此高的数字.不必更改Visual Studio项目中的端口是方便的.

port android google-chrome portforwarding google-chrome-devtools

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

如何将端口从一个docker容器转发到另一个?

我经常看到将docker容器的端口暴露给主机的解决方案.

在我的情况下,我想将一个本地端口从一个容器转发到另一个容器.假设我在容器A上运行一个服务,该服务具有硬编码配置以访问localhost 3306上的db.但我想在容器B上运行db服务器.

从A-localhost向前移动的最佳方式是什么:3306到B-IP:3306

portforwarding docker

11
推荐指数
3
解决办法
5748
查看次数

Pycharm 使用 Docker Container Python 作为远程解释器

我试图在远程机器上的 docker 容器中使用 python 作为 Pycharm 中的解释器。既然是一口,这里是一张图:

在此处输入图片说明

容器中运行着一个 Jupyter Notebook,我可以通过本地浏览器连接到它(尽管这只是为了测试连接)。我用来启动 Docker 容器的命令是

docker run --runtime=nvidia -it --rm --shm-size=2g -v /home/timo/storage:/storage -v /etc/passwd:/etc/passwd -v /etc/group:/etc/group --ulimit memlock=-1 -p 8888:8888 -p 7722:22 --ipc=host latest:latest
Run Code Online (Sandbox Code Playgroud)

我可以转发运行 Jupyter 笔记本的端口 8888,ssh -L 8888:0.0.0.0:8888 BBB.BBB.BBB.BBB从而在本地机器上使用它。但是我不太喜欢使用 Jupyter 进行开发,并且想在 Pycharm 的 Docker Container 中使用 Python 解释器。

当我在 Pycharm 中选择“添加 Python 解释器”时,我得到以下选项:

在此处输入图片说明

Pycharm的文档建议使用“添加 Python 解释器/Docker”工具,如下所示:

在此处输入图片说明

然而,如果 Docker 在远程机器上,文档并没有说明如何设置 Docker 容器和连接。

所以我的问题是:我应该使用 Unix 还是 TCP 套接字连接到我的远程 docker?或者我应该以某种方式转发容器中的所有相关端口并使用“SSH Interpreter”选项?如果是这样,我该如何设置这一切?我是否首先正确设置了我的 Docker 容器?

在过去的两天里,我想我已经浏览了每个论坛和在线资源,但还没有更接近于让它发挥作用。我也试图让它在 Spyder 中工作,但也无济于事。所以任何建议都非常感谢!

非常感谢!

ssh portforwarding pycharm docker

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