标签: portforwarding

Nat 穿越:UPnP/IGD 与 NAT-PMP

我正在编写一个 P2P 应用程序,希望避免用户手动设置端口转发。

我有点困惑,因为似乎有两种不同的协议来配置 NAT,UPnP/IGD 和 NAT-PMP。我应该使用哪一个?所有 NAT 都支持它们吗?或者我应该同时支持两者以确保 NAT 至少支持其中之一?

p2p network-programming upnp nat portforwarding

6
推荐指数
2
解决办法
4949
查看次数

linux中的ssh端口转发(隧道)

我有一个特定的场景,我想解决.我目前通过端口转发连接到主机:

 laptop -> gateway -> remote_server_1
Run Code Online (Sandbox Code Playgroud)

和另一位主持人:

 laptop -> remote_server_2
Run Code Online (Sandbox Code Playgroud)

使用无密码登录.这两个远程服务器都不对外界可见.现在我正在remote_server_2上运行一项服务,我希望能够访问remote_server_1.我认为我必须设置从remote_server_1到我的笔记本电脑的反向端口转发,然后再到remote_server_2,但我不知道如何做到这一点.以前有人遇到过这种情况吗?

编辑:完整的解决方案,以防其他人需要它:

mylaptop$ ssh -L 3001:localhost:3000 server_2
server_2$ netcat -l 3000
Run Code Online (Sandbox Code Playgroud)

然后通过以下gateway方式设置隧道server_1:

ssh -t -t -L 3003:server_1:22 gateway
Run Code Online (Sandbox Code Playgroud)

然后从server_1以下位置访问:

ssh -R 3002:localhost:3001 -p3003 localhost
echo "bar" | nc localhost 3002`
Run Code Online (Sandbox Code Playgroud)

嘿presto server_2显示bar:-)

linux openssh portforwarding tunneling ssh-tunnel

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

Nginx隐藏转发的端口号

我正在尝试建立一个简单的静态网站,我有一个nginx的问题,这个问题很复杂,最明显的是我的ISP阻止了所有入站端口80的流量.

首先,我设置了一个Web前端,以便www.mysite.com重定向到mysite.com:8000,然后设置我的路由器将端口8000转发到运行nginx的服务器.这绕过了我的ISP在端口80上的阻塞.我现在正试图让服务器上的nginx将端口8000上的请求代理到端口80上的虚拟主机,这样该网站在加载后将显示为mysite.com比mysite.com:8000.

我一直试图用nginx的proxy_pass指令来做这件事,但无论我做什么,该网站总是显示为mysite.com:8000.

这是我到目前为止所拥有的:

server {
  listen [::]:8000

  server_name mysite.com;

  location / {
    proxy_pass http://127.0.0.1:80;
    proxy_redirect default;
    proxy_set_header  Host               $http_host;
    proxy_set_header  X-Real-IP          $remote_addr;
    proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header  X-Forwarded-Proto  http;
  }
 }

server {
  listen 127.0.0.1:80;

  server_name mysite.com;

  root /var/www/homepage;
  index index.html;

  .
  .  (non-relevant stuff)
  .
}
Run Code Online (Sandbox Code Playgroud)

链接到实际网站:http://www.bjacobel.com

我也尝试通过将路由器上的端口8000转发到端口80,并让nginx在端口80上侦听,但是仍然显示其中包含:8000的URL.

谢谢你的帮助!

port proxy nginx portforwarding

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

流浪汉的麻烦 - "404 - 未找到"

我正在尝试使用Vagrant制作一个LAMP盒子.我被告知使用起来非常简单.我是网络和虚拟机的新手,对Linux/Ubuntu的经验很少.我目前正在尝试按照官方文档页面上的教程:http://docs.vagrantup.com/v2/getting-started/networking.html.

我已经了解了文档中的网络文章,似乎无法使其正常工作.

现在问题是,由于我对网络和基于Linux的操作系统的经验不足,我不知道从哪里开始故障排除.我会尽力提供尽可能多的信息.

我正在使用最新版本的Virtualbox和Windows 8.1运行最新版本的Vagrant.

根据教程,我目前的Vagrantfile如下所示:

Vagrant.configure(2) do |config|
  config.vm.box = "hashicorp/precise32"
  config.vm.provision :shell, path: "bootstrap.sh"
  config.vm.network :forwarded_port, host: 4567, guest: 80
end
Run Code Online (Sandbox Code Playgroud)

我的bootstrap.sh文件如下所示:

#!/usr/bin/env bash

apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
  rm -rf /var/www
  ln -f /vagrant /var/www
fi
Run Code Online (Sandbox Code Playgroud)

当我访问http://127.0.0.1:4567时,它显示包含此消息的错误页面:

Not Found

The requested URL / was not found on this server.
===================================================
Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 4567
Run Code Online (Sandbox Code Playgroud)

我宁愿不编辑任何配置文件,除非有解释,因为我觉得这将是一种解决方法.但无论如何,任何帮助将不胜感激.如果我需要打开一个端口,那么我如何才能考虑使用XAMPP.

linux lamp virtualbox portforwarding vagrant

6
推荐指数
2
解决办法
7621
查看次数

Mac主机不喜欢Docker容器端口转发

我是第一次尝试使用Docker,我正试图让一个Spring Boot Web应用程序在Docker容器中运行.我正在构建应用程序(将其打包成一个独立的jar),然后将其添加到Docker镜像(这就是我想要的).

你可以在GitHub上的这个Bootup回购中找到我的SSCCE,它的README具有重现我所看到的所有指令.但基本上:

  • 我将Web应用程序构建到jar中
  • 运行docker build -t bootup .哪个成功
  • 运行docker run -it -p 9200:9200 -d --name bootup bootup然后容器似乎启动就好了,正如docker ps下面输出的证据
  • 但是,当我指向浏览器时http://localhost:9200,我什么都没得到

docker ps 输出:

CONTAINER ID        IMAGE               COMMAND                  CREATED
a8c4ee64a1bc        bootup              "/bin/sh -c 'java -ja"   2 days ago

STATUS              PORTS                    NAMES
Up 12 seconds       0.0.0.0:9200->9200/tcp   bootup
Run Code Online (Sandbox Code Playgroud)

Web应用程序配置为在端口9200上运行,而不是 Java默认值8080.您可以通过运行在docker之外运行应用程序(因此,只在本地主机上)来自行查看./gradlew clean build && java -jar build/libs/bootup.jar.

据我所知,我的主机上没有运行阻止端口的防火墙(我在Mac 10.11.5上验证System Preferences >> …

java macos portforwarding docker docker-networking

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

SSH端口隧道与自动化

如果用户位于特定的Active Directory组中,是否可以仅允许通过SSH端口隧道使用端口?

我有一台客户端计算机,一台Windows Web服务器和一台带有数据库的Linux服务器.我希望客户端能够使用SSH连接到数据库,但前提是它们位于特定的AD组中.

有没有办法实现这个目标?

authentication authorization portforwarding ssh-tunnel

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

如何从Kubernetes集群外部连接到CockroachDB?

根据文档,我已经设置并部署了包含三个CockroachDB pod的Kubernetes状态集.我的最终目标是在不需要使用kubectl的情况下查询数据库.我的中间目标是查询数据库而不实际炮轰到数据库pod中.

我将一个端口从一个端口转发到我的本地机器,并尝试连接:

$ kubectl port-forward cockroachdb-0 26257
Forwarding from 127.0.0.1:26257 -> 26257
Forwarding from [::1]:26257 -> 26257

# later, after attempting to connect:
Handling connection for 26257
E0607 16:32:20.047098   80112 portforward.go:329] an error occurred forwarding 26257 -> 26257: error forwarding port 26257 to pod cockroachdb-0_mc-red, uid : exit status 1: 2017/06/07 04:32:19 socat[40115] E connect(5, AF=2 127.0.0.1:26257, 16): Connection refused


$ cockroach node ls --insecure --host localhost --port 26257
Error: unable to connect or connection lost.

Please check …
Run Code Online (Sandbox Code Playgroud)

portforwarding kubernetes cockroachdb

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

nginx大量端口转发

我正在尝试在 nginx 配置中为 20K 端口(范围 [40k-60k])添加映射。这个配置被添加到 nginx.conf

stream{
    server {
        listen 40000;
        listen 40001;
        .
        .
        .
        listen 60000;
        proxy_pass <backend-url>:$server_port;
     }
}
Run Code Online (Sandbox Code Playgroud)

当映射数小于 500 时,一切都很好。但是当它增加到 20K 映射时,响应延迟是巨大的。任何解决方法或任何其他方法来添加端口转发?

port iptables nginx portforwarding

6
推荐指数
2
解决办法
6616
查看次数

JSch 多隧道/跳台

我不确定这是否是由于端口转发使用私钥而不是密码引起的,但这是我正在尝试做的

在此处输入图片说明

我需要将本地端口 3308 一直转发到我的 SQL 数据库 3306。

我可以在本地的终端中一起运行这样的事情

ssh -L 3308:localhost:3307 username@jumpbox "ssh -L 3307:mysqlDB:3306 username@server"
Run Code Online (Sandbox Code Playgroud)

或者在我的本地运行第一部分,然后在 jumpbox 上运行第二部分。两者都工作正常,我可以连接到我的 localhost:3308。

当我开始使用 JSch 时,问题就来了。这是我的代码

JSch jsch = new JSch();
jsch.addIdentity("~/.ssh/id_rsa");

Session session = jsch.getSession("username", "jumpbox");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();

int assinged_port = session.setPortForwardingL(3308, "localhost", 3307);
Session mysqlSession = jsch.getSession("username", "server", assinged_port);
mysqlSession.setConfig("StrictHostKeyChecking", "no");
mysqlSession.connect(); // Connection timed out here
mysqlSession.setPortForwardingL(3307, "mysqlDB", 3306);
Run Code Online (Sandbox Code Playgroud)

第一个连接已完成,但第二个连接超时。

线程“main”com.jcraft.jsch.JSchException 中的异常:java.net.ConnectException:操作超时(连接超时)

我在 JSch 或端口转发方面做错了吗?

java ssh portforwarding jsch ssh-tunnel

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

通过 USB 在 iOS 中反向端口转发

我在桌面上有一个网络套接字服务器,在 iPhone 设备上有一个客户端。我想使用 USB 而不是任何网络与他们通信。我已经使用 adb reverse 在 android 上实现了它,但无法找到任何适用于 iOS 的解决方案。

我曾尝试使用 usbmuxd 和 iproxy 来实现它,但它们只进行端口转发而不是反向转发。我真的很感激这方面的一些帮助。

usb portforwarding mobile-application websocket ios

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