天道酬勤,学无止境

Remote debugging - how to create a port proxy?

I'm trying to access remote debugging port running on box A (Debian) from box B (Windows). On box A I'm running Chrome with --remote-debugging-port=9222 flag and I can see that it works correctly (I can access localhost:9222 from another browser on A). Also, I'm sure that boxes A and B are connected because I can access :80 (apache) running on box A from box B just fine. Thing I need to do now is to allow box B access :9222 on box A. I've done research on port forwarding and iptables rules but I failed to make it work.

EDIT

Machine B is Windows so I'm not sure how to use ssh there, I found an app for port-forwarding that seems to work fine. It gives me an error though: "received a connection but can't connect to host-B:9222". So it looks like 9222 is not open for outside connections. Output from netstat on A gives me:

root@template:/home/developer# netstat -nap | grep 9222
tcp        0      0 127.0.0.1:9222      0.0.0.0:*    LISTEN      24300/user     

评论

I found my answer here. Everything comes down to this:

  • open Chrome in one console: google-chrome --remote-debugging-port=9222
  • and set up a proxy in another one: ssh -L 0.0.0.0:9223:localhost:9222 localhost -N
  • now you should be able to access remote debugging from another machine via http://192.168.1.123:9223/

The browser binds socket to localhost address. That is why you have the problem with accessing to the port.

You can solve the problem with help of ssh port forwarding feature.

ssh user@host-A.example.org -L 9111:127.0.0.1:9222

After running this command please open localhost:9111 on host B

ssh will forward the connection to host A and connect it to localhost:9222

Another solution is to forward another port on the host A with help of nc

http://en.wikipedia.org/wiki/Netcat

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • git clone timed out when used through https proxy
    The command "git clone https://github.com/user/project.git" times out when being used through an https proxy. I've successfully had git functioning behind a proxy before, and have read other stackoverflow related to git and proxy usage. Now I've configured it on a host in my current organization to use a non-authenticating proxy, but it's timing out. the proxy is squid, non-authenticating directly connecting via TCP-443 is not an option I've confirmed that git is contacting the proxy Git issues the command "CONNECT github.com:443 HTTP/1.1" The proxy allows the request and connects to github
  • 如何正确关闭客户端代理(远程主机强行关闭了现有连接)?(How to properly close a client proxy (An existing connection was forcibly closed by the remote host)?)
    问题 请不要重复阅读,直到您读完问题为止。 我已经用Google搜索了几个小时,没有成功。 编辑:现在我确信这与WCF缓存打开TCP连接(连接池)的方式有关。 请在问题结尾处查看编辑#5。 我基本上有一个使用netTcpBinding配置的WCF服务。 即使我正常关闭了客户端代理(请参见下面的代码),服务器也始终会记录“ System.Net.Sockets.SocketException (0x80004005): An existing connection was forcibly closed by the remote host ”。 我已将问题缩小到我可以编写的最基本的WCF示例。 每次关闭客户端应用程序时,WCF跟踪生成的日志中都会出现异常。 我自己的代码中没有任何异常,这意味着它可以按预期运行,并且我无法调试任何东西以查看WCF在我的日志中添加错误的原因。 服务接口/实现: [ServiceContract] public interface IService1 { [OperationContract] string DoWork(); } ... public class Service1 : IService1 { public string DoWork() { return "12"; } } 服务器端配置: <configuration> <system
  • 在PHP中通过SSH连接到MySQL服务器(Connect to a MySQL server over SSH in PHP)
    问题 我的数据库位于远程Linux机器上,我想使用SSH和PHP函数进行连接(我目前正在使用ssh2库)。 我尝试使用mysql_connect,但是当我尝试使用此函数时,它使我无法访问(尽管我已授予权限): $connection = ssh2_connect('SERVER IP', 22); ssh2_auth_password($connection, 'username', 'password'); $tunnel = ssh2_tunnel($connection, 'DESTINATION IP', 3307); $db = mysqli_connect('127.0.0.1', 'DB_USERNAME', 'DB_PASSWORD', 'dbname', 3307, $tunnel) or die ('Fail: '.mysql_error()); 我收到错误消息“ mysqli_connect()期望参数6为字符串,给定资源”。 我该如何解决? 回答1 SSH隧道解决方案 设置到MySQL数据库服务器的SSH隧道(通过安全性通过Jumpbox代理)。 (A)GUI工具 根据您的要求,您可以使用具有内置SSH隧道支持的GUI MySQL客户端,例如Visual Studio代码转发端口/创建SSH隧道,TablePlus或使用PuTTY设置本地端口转发。
  • Xdebug PhpStorm:等待带有ide密钥的传入连接(Xdebug PhpStorm: Waiting for incoming connection with ide key)
    问题 当使用PhpStorm和xdebug调试php时,我已经搜索了很多这个问题,发现3或4个链接讨论了这个问题,但是它们都没有用。我的Xdebug的版本是2.2.3,PhpStorm的版本是6.03。 除了这一步,我可以逐步调试每一行 $this->link = mysql_connect($this->dbserver, $this->dbuser, $this->dbpass); PhpStorm显示此错误:等待使用ide键“ 14841”的传入连接。 这是我的xdebug配置: zend_extension="/usr/lib/xdebug.so" xdebug.remote_autostart=1 xdebug.show_local_vars=1 xdebug.dump.GET=* xdebug.dump.POST=* xdebug.dump.SERVER=* xdebug.auto_trace=On ; default trace output directory /tmp xdebug.collect_vars = On xdebug.trace_output_dir=/tmp xdebug.collect_params=4 xdebug.collect_return=On xdebug.profiler_enable=Off ; default trace
  • 如何配置Hyperic 的 SNMP trap receiver
    用户可以让Hyepric 接收和记录从远程网络管理系统或支持SNMP的设备发出的 SNMP消息。并可以根据接收的信息定义报警。这个配置过程包括配置HQ Agent和相互通信的网络系统或设备,还需要创建一个类型是Network Device的平台,用于表示这个远程系统或设备。选择和启用一个用于接收TRAP的HQ Agent当用户配置一个Network Device平台时,必须指定一个Hyperic Agent的连接信息。该Agent将接收SNMP数据,并能够接收Trap.HQ Agent默认接收traps的端口是162,该端口属于特权端口,所以HQ Agent应以root身份运行或 windows的管理员身份。配置一个非特权端口接收trap的步骤如下:步骤 1,用文本编辑器打开 agent.properties文件;步骤 2,加入下面内容:snmpTrapReceiver.listenAddress=udp:0.0.0.0/1620步骤 3,重启 Hyperic Agent;该设置可以使Hyperic Agent可以接收该平台上通过所有网络接口的 UDP 1620 端口发来的trap。可以根据需要指定特定的网络接口的IP地址或其他非特权端口(大于 1024)。可以使用netstat检查端口的状态。配置Trap Generator步骤1, 在启用SNMP的系统或应用中,设置Hypeic
  • How to properly close a client proxy (An existing connection was forcibly closed by the remote host)?
    Please don't close as duplicate until you read the question to the end; I already googled for hours without success. EDIT: Now I'm convinced it's related to the way WCF caches opened TCP connections (connection pooling). Please take a look at edit #5 at the end of he question. I basically have a WCF service that uses a netTcpBinding configuration. Even if I close the client proxy gracefully (see code below), server always logs "System.Net.Sockets.SocketException (0x80004005): An existing connection was forcibly closed by the remote host". I've narrowed down the issue to the most basic WCF
  • 如何在 Heroku 中使用 Flask/Peewee?(How to use Flask/Peewee with Heroku?)
    问题 我正在尝试将 Flask 应用程序部署到 Heroku。 我使用 Peewee 作为 Postgres 数据库的 ORM。 当我按照标准 Heroku 步骤部署 Flask 时,在我输入heroku ps:scale web=1后,Web 进程崩溃了。 以下是日志的内容: Starting process with command `python app.py` /app/.heroku/venv/lib/python2.7/site-packages/peewee.py:2434: UserWarning: Table for <class 'flask_peewee.auth.User'> ("user") is reserved, please override using Meta.db_table cls, _meta.db_table, Traceback (most recent call last): File "app.py", line 167, in <module> auth.User.create_table(fail_silently=True) File "/app/.heroku/venv/lib/python2.7/site-packages/peewee.py", line 2518, in create_table if fail
  • 【三】dubbo源码分析之服务提供方export(服务暴露)
    上一章讲了服务提供方启动的时候会扫描所有@Service注册,并注册相应的ServiceBean。 spring发送ContextRefreshedEvent后每个ServiceBean会通过自生的export方法暴露。 这章详细讲export怎么暴露服务,注册到注册中心。 简介 暴露服务时序 服务提供者暴露一个服务的过程图 ServiceBean.export public void export() { super.export(); // Publish ServiceBeanExportedEvent publishExportEvent(); } 重点在调用父类的export方法 ServiceConfig.export public synchronized void export() { // if (provider != null) { if (export == null) { export = provider.getExport(); } if (delay == null) { delay = provider.getDelay(); } } if (export != null && !export) { return; } //如果要进行延迟暴露,则开启一个子线程,在子线程中进行服务暴露的工作 if (delay != null && delay >
  • 如何让Charles Charles Proxy与Android 7 Nougat一起工作?(How to get charles proxy work with Android 7 nougat?)
    问题 Android 7引入了一些处理证书方式的更改(http://android-developers.blogspot.com/2016/07/changes-to-trusted-certificate.html),并且我无法以某种方式使我的Charles代理工作。 我的network_security_config.xml: <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> <debug-overrides> <trust-anchors> <certificates src="user" /> </trust-anchors> </debug-overrides> </network-security-config> 我正在调试模式下运行。 但是无论如何,我都会得到javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not
  • phpstorm 断点调试debug
    吐槽: 其实我对phpstorm的印象并不是很好。 这是我在16年左右使用webstorm时候留下来阴影,占内存大,集成太多用不上的东西,不支持sublime那样的ctrl+d 多选 多编辑的功能。 最近有开始用php做项目,无奈又进入了phpstorm的坑。 一开始其实我是一直都是用vscode的,但是它对php的支持并不是特别好,无法实现ctrl+点击时候(类或函数)时候直接跳转对应文件或说明。 无法快速的阅读框架源码,这个对我来说真的特别难接受,无奈只能放弃vscode,选择phpstorm. 话题开始之前: 其实一开始,我也用不上编辑器断点debug这样的功能。 我都是在代码里面打log来debug的。对于常见的增删查改,这样操作并没有多少问题。 后来开始搞爬虫这种异步编程的东西了,就非常难用这种方式debug了。 这是首先于http协议的问题,都是客户端发起请求后台执行后一次性推送给客户端。爬虫每个环节都需要debug。 我需要的是在代码运行过程中能明确看到代码运行到哪里了,而不是等他结束后一股脑的把debug的log推送到客户端给我。 这个提供的log太多,我还得在一条条的log中排查。无法做到及时定位问题。 进入话题: 本地需要提供可以访问的域名(host配置好,当然ip也没问题
  • Paramiko:围绕NAT路由器进行端口转发(Paramiko: Port Forwarding Around A NAT Router)
    问题 配置 本地:将在本地计算机上创建ssh连接并发出命令的本地计算机。 代理:具有SSH权限的LO -2和REMOTE的EC-2实例。 远程:位于NAT路由器后面的远程计算机(LOCAL无法访问,但是将打开与PROXY的连接并允许LOCAL隧道连接到它)。 端口转发步骤(通过命令行) 创建从REMOTE到PROXY的SSH连接,以将REMOTE计算机上端口22上的SSH流量转发到PROXY服务器上的端口8000。 #从REMOTE机器上运行 ssh -N -R 0.0.0.0:8000:localhost:22 PROXY_USER @ PROXY_HOSTNAME 创建一个从LOCAL到PROXY的SSH隧道,并将SSH流量从LOCAL:1234转发到PROXY:8000(然后将其转发到REMOTE:22)。 #从本地机器运行 ssh -L 1234:localhost:8000 PROXY_USER @ PROXY_HOSTNAME 创建从本地到远程(通过PROXY)的转发ssh连接。 #在新的终端窗口中从本地计算机运行 ssh -p 1234 REMOTE_USER @ localhost #我现在已将命令切换到“远程”框并可以运行命令 帕拉米科研究 我看过一些与使用Paramiko进行端口转发有关的问题,但是它们似乎无法解决这种特定情况。 我的问题
  • Git SSH错误:“连接到主机:错误的文件号”(Git SSH error: “Connect to host: Bad file number”)
    问题 我遵循了git指南,但是在尝试连接到github时遇到了这个奇怪的问题: $ ssh -v git@github.com OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/Documents and Settings/mugues/.ssh/config debug1: Applying options for github.com debug1: Connecting to github.com [207.97.227.239] port 22. debug1: connect to address 207.97.227.239 port 22: Attempt to connect timed out without establishing a connection ssh: connect to host github.com port 22: Bad file number 这是我的.ssh下的配置文件 Host github.com User git Hostname github.com PreferredAuthentications publickey IdentityFile "C:\Documents and Settings\mugues\
  • Charles 的 调试 & Mock 数据技巧
    Charles 拥有 Map 、Rewrite、Breakpoint 3大调试技巧,非常值得客户端开发学习一波。 Charles 的 Map Local 功能(将网络请求重定向到本地文件) 针对一个有数据的请求,提前把 Response 保存到本地 在charles「Tools -> Map Local」 勾选 Enable Map Local,点击 Add 添加一个规则 填写对应匹配规则,然后指向本地一个文件路径,点击OK。 命中规则后,会在Overview界面里有一条Note记录。 也可以对着某个请求,右键,选择「Map Local…」 这样可以自动填充url规则 —————————————————————————————— Charles 的 Rewrite 功能(将网络请求改写) 勾选Enable Rewrite,点击 Add 添加一个规则 Rewrite 玩法一: 改写Response的某个开关的值 很多时候你只想改某个值,使用 Map Local 太重又很繁琐。而且把不相关的返回都固定下来了。此时就可以使用 Rewrite 修改某一个值。 先添加一个拦截规则 配置Rewrite规则是,针对response的body。把「“is_new_page”:0,」替换为「“is_new_page”:1,」 !!!注意冒号:后面不能有空格!!! Rewrite如果命中了
  • 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片
    目录第一部分:Consul 基础基础知识通过 DNS 查询 Consul 服务信息小结通过 HTTP API通过 UI 查询端口定义服务使用配置启动服务如何重新加载配置文件启动 agent发现数据中心成员查看 UIUbuntu/Debian 系统Centos/RHEL 系统检查安装1,Consul 介绍2,安装 Consul3,运行 Consul Agent4,在 Consul Service Discovery 中注册服务5,查询服务6,DNS 知识与查询7,将数据存储在Consul KV 中第二部分:深入 Consul提供代理服务另一台服务器代理验证代理开始准备启动 Consul 中心启动客户端检查成员信息关联服务器打开 UI 查看服务节点信息了解 Consul Service Mesh部署真实服务真实注册服务注册代理代理服务验证代理UI 界面查看8,Consul Service Mesh9,Consul 集群/数据中心10,集群代理服务第一部分:Consul 基础1,Consul 介绍官网文档描述:Consul 是一个网络工具,提供功能齐全的服务网格和服务发现。它可以做什么:自动化网络配置,发现服务并启用跨任何云或运行时的安全连接。那么,我们对 Consul 的理解,就是服务网格、服务发现,官网文档说的这两个特征,到底是啥意思?跨什么云?下面,我们将通过实践操作,逐渐了解
  • Python本地利用Jupyter Notebook调试远程服务器
    0. 前言  最近在公司希望在本地调用服务器的Python进行Python的调试,踩了很多坑,现在记录下主要的过程。 1. 环境 本机环境:Ubuntu 16.04Python:Anaconda服务器环境:centos 2. 服务器Jupyter Notebook设置 01. 在服务器安装anaconda   自己或者联系SRE在服务器安装anaconda(主要是由于这个集成了很多包,方便使用) 02. 生成密码  打开python终端生成密码,防止他人使用自己的环境。(^ _ ^) # 打开python终端 from IPython.lib import passwd passwd() Enter password: verify password: OUt: 'sha1:0e422dfccef2:84cfbcbb3ef95872fb8e23be3999c123f862d856' 03. 修改Jupyter Notebook默认配置文件  在服务器终端输入vim ~/.jupyter/jupyter_notebook_config.py,打开默认配置文件,如果没有则创建。然后在末尾输入这几行。其实还有很多可以配置,具体配置可以在网上查找。 c.NotebookApp.ip='*' c.NotebookApp.password = u'sha:ce...刚才复制的那个密文' c
  • 关于×××在DEBUG过程中可能出现的问题
    最近在调试DEBUG过程中看到本文章,觉得对于×××错误信息不熟的人来说非常有用,几部囊括了所有的×××的DEBUG错误提示信息,并且作者对其进行了一定说明,遂转发希望对更多的人有帮助。 原文地址:×××(IKEv1)實驗Troubleshooting系列一:L2L-×××作者:修羅雷禪 ×××中的排錯,甭管是在工作中還是在LAB中,都是挺重要的。因此,我,人為的在L2L/Ez×××/DM×××/GET×××中加入些錯誤配置,并通過Debug來分析各種錯誤。此篇博文是介紹L2L×××的,在後續的博文中,我將給大家逐一展示其他類型×××中的Troubleshooting! 一,實驗拓撲:二,配置:R1:R1#sh run | sec crycrypto isakmp policy 10authentication pre-sharecrypto isakmp key cisco address 202.100.1.2crypto ipsec transform-set cisco esp-des esp-md5-hmac crypto map cisco 10 ipsec-isakmp set peer 202.100.1.2set transform-set cisco match address L2L×××interface Loopback0ip address 1.1.1
  • Paramiko: Port Forwarding Around A NAT Router
    Configuration LOCAL: A local machine that will create an ssh connection and issue commands on a REMOTE box. PROXY: An EC-2 instance with ssh access to both LOCAL and REMOTE. REMOTE: A remote machine sitting behind a NAT Router (inaccessible by LOCAL, but will open a connection to PROXY and allow LOCAL to tunnel to it). Port Forwarding Steps (via command line) Create an ssh connection from REMOTE to PROXY to forward ssh traffic on port 22 on the REMOTE machine to port 8000 on the PROXY server. # Run from the REMOTE machine ssh -N -R 0.0.0.0:8000:localhost:22 PROXY_USER@PROXY_HOSTNAME Create an
  • selenium 谷歌 火狐 浏览器设置参数
    谷歌浏览器 from selenium import webdriver import os # 进入浏览器设置 options = webdriver.ChromeOptions() # 谷歌无头模式 options.add_argument('--headless') options.add_argument('--disable-gpu') # 设置页面大小 options.add_argument('window-size=1200x600') # 设置中文 options.add_argument('lang=zh_CN.UTF-8') # 更换头部 options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"') # 设置代理 options.add_argument('proxy-server=' + proxy) # 不加载图片 options.add_experimental_option('prefs', {"profile.managed_default_content
  • 如何配置Socket.io在https的同一端口上运行?(How to configure Socket.io to run on same port on https?)
    问题 一如既往,我摸索着血淋淋的手指,找到了解决我问题的答案,因此,我再次与所有天才联系! :) 我已经用socket.io(使用express)设置了一个Node.js服务器,它使用8443端口运行良好。 由于我的许多客户似乎都不允许端口8443上的流量,因此他们无法使用我的服务。 我想知道如何在端口443上设置Node.js,因为使用节点服务器的站点已经在使用此端口(Https)。 如果我尝试在节点服务器上使用端口443,则会得到:警告-引发错误:错误:监听EACCES 我的Node-js代码的一部分: var fs = require('fs'); var https = require('https'); var express = require('express'); var socket = require('socket.io'); var port = 8443; var sslOptions = { pfx: fs.readFileSync('mykey.pfx'), passphrase: ******** }; var app = express(); app.all('/*', function(req, res, next) { res.header("Access-Control-Allow-Origin", "*"); res.header(
  • 【爬虫】网页抓包工具--Charles的使用教程
    抓包工具Charles的使用教程参考:https://zhubangbang.com/charlesproxy如果您是您一次使用Charles,可能对下面的感兴趣。Charles破解版免费下载和安装教程Charles手机抓包设置Charles的https抓包方法及原理/下载ssl/http证书如果您已经正在使用Charles,可能感兴趣下面的工具Charles禁止缓存工具Charles禁用cookies工具Charles远程映射工具Charles本地映射工具Charles镜像工具Charles重写工具Charles的black list和white list工具CharlesDNS欺骗工具Charles自动储存工具Charles客户端进程工具Charles撰写工具Charles重复发包工具Charles验证工具Charles Publish Gist 工具如果您想了解顶部菜单栏,可以看下面的Charles View 视图菜单介绍Charles的window和help菜单Charles的Edit菜单介绍Charles的proxy菜单介绍如果您有前端测试的需求,推荐 SwitchHosts 这个小工具,当然您如果对chrome浏览器的在线改host感兴趣,也可以用下 Host Switch PlusCharles可能很多人不熟悉