我必须在Tomcat_6.0.35中对Alfresco 4.0进行远程调试。官方文档说我应该设置env变量
JAVA_OPTS=-Xdebug-Xrunjdwp:传输=dt_socket,服务器=y,挂起=n,地址=8082
我做到了,但它只对startup.bat有效。ALFLECO 4.0启动Tomcat作为windows服务,并调用此:
C:\Alphaco\tomcat\bin\tomcat6.exe//RS//alphacoTomcat
因此,我需要对此服务进行远程调试,并尝试将Tomcat的默认服务调用更改为:
1)c:\AlJeffco\tomcat\bin\tomcat6.exe//RS//alJeffcoTomcat--JvmOptions=-Xdebug;-Xrunjdwp:传输=dt_socket,服务器=y,挂起=n,地址=8082;
或
2) c:\Alfresco\tomcat\bin\tomcat6。exe//TS//alfrescoTomcat--JvmOptions=-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8082;
它成功地启动了Tomcat,我可以调试这个服务器,但是阿尔弗雷斯科4.0抛出异常或挂起...我应该如何调试这个服务?
我的日志:
正在侦听地址为8082 11.04.2012 19:13:28的传输dt_套接字。阿帕奇。卡塔琳娜。果心AprLifecycleListener初始化信息:加载了基于APR的ApacheTomcat本机库1.1.20。11.04.2012 19:13:28组织。阿帕奇。卡塔琳娜。果心AprLifecycleListener初始化信息:APR功能:IPv6[true]、sendfile[true]、接受筛选器[false]、随机[true]。11.04.2012 19:13:28组织。阿帕奇。郊狼。http11。http11aprotocol init INFO:在HTTP-808011.04.2012 19:13:28 org上初始化郊狼HTTP/1.1。阿帕奇。郊狼。ajp。AjpAprProtocol初始化信息:在AJP-8009 11.04.2012 19:13:29 org上初始化郊狼AJP/1.3。阿帕奇。郊狼。http11。http11协议初始化信息:在HTTP-8443 11.04.2012 19:13:29 org上初始化Coyote HTTP/1.1。阿帕奇。卡塔琳娜。启动。Catalina加载信息:在1145 ms 11.04.2012 19:13:29组织中处理初始化。阿帕奇。卡塔琳娜。果心标准服务启动信息:启动服务Catalina 11.04.2012 19:13:29组织。阿帕奇。卡塔琳娜。果心标准引擎启动信息:启动Servlet引擎:ApacheTomcat/6.0.29 11.04.2012 19:13:29 org。阿帕奇。卡塔琳娜。启动。HostConfig deployDescriptor信息:在露天部署配置描述符。xml 11.04.2012 19:13:30组织。阿帕奇。卡塔琳娜。果心StandardContext addApplicationListener信息:已为此上下文配置了侦听器“org.apache.myfaces.webapp.StartupServletContextListener”。重复的定义已被忽略。11.04.2012 19:13:32组织。阿帕奇。卡塔琳娜。果心ApplicationContext日志信息:正在初始化Spring根WebApplicationContext
...
e、 卡塔琳娜。启动。主机配置。deployApps(HostConfig.java:498)e.catalina。启动。主机配置。启动(HostConfig.java:1277)e.catalina。启动。主机配置。lifecycleEvent(HostConfig.java:321)e.catalina。util。生命周期支持。fireLifecycleEvent(LifecyclesSupport.java:119)e.catalina。果心集装箱基地。start(ContainerBase.java:1053)e.catalina。果心标准主机。start(StandardHost.java:785)e.catalina。果心集装箱基地。start(ContainerBase.java:1045)e.catalina。果心标准引擎。启动(StandardEngine.java:445)e.catalina。果心标准服务。start(StandardService.java:519)e.catalina。果心标准服务器。启动(StandardServer.java:710)e.catalina。启动。卡塔琳娜。start(Catalina.java:581)ct。NativeMethodAccessorImpl。调用0(本机方法)ct。NativeMethodAccessorImpl。调用(NativeMethodAccessorImpl.java:39)ct。DelegatingMethodAccessorImpl。调用(DelegatingMethodAccessorImpl.java:25)。反映方法调用(Method.java:597)e.catalina。启动。独自创立start(Bootstrap.java:289)e.catalina。启动。独自创立main(Bootstrap.java:414)gframework。豆。工厂BeanCreationException:创建名为“transactionService”的bean时出错,该bean在类路径核心服务上下文中定义。xml]:设置bean属性“transacti Exception is org”时,无法解析对bean“transactionManager”的引用。springframework。豆。工厂BeanCreationException:创建名为“transactionManager”的bean时出错[alfresco/hibernate context.xml]:在设置bean正确嵌套异常时,无法解析对bean“sessionFactory”的引用。springframework。豆。工厂BeanCreationException:创建名为“sessionFact”的路径资源[alfresco/hibernate context.xml]的bean时出错:调用init方法失败;嵌套的异常是org。冬眠Hi-bernate方言必须显式设置为GFramew。豆。工厂支持BeanDefinitionValueResolver。resolveReference(beandDefinitionValueResolver.java:328)GFramew。豆。工厂支持BeanDefinitionValueResolver。ResolveValueIfEssential(beandDefinitionValueResolver.java:10
gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.apply属性值
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。populateBean(AbstractAutowireCapableBeanFactory.java
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
G框架。豆。工厂支持AbstractBeanFactory 1美元。getObject(AbstractBeanFactory.java:291)gframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:222)gframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:288)GFramew。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:190)gframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:322)
G框架。豆。工厂BeanCreationException:创建在类路径hibernate上下文中定义了名为“transactionManager”的bean时出错。xml]:设置bean属性“sessionFactory”时无法解析对bean“sessionFactory”的引用;组织。springframework。豆。工厂BeanCreationException:创建在类esco/hibernate上下文中定义的名为“sessionFactory”的bean时出错。xml]:调用init方法失败;嵌套的异常是org。冬眠HibernateException:Hib必须显式设置为GFramew。豆。工厂支持BeanDefinitionValueResolver。resolveReference(beandDefinitionValueResolver.java:328)GFramew。豆。工厂支持BeanDefinitionValueResolver。ResolveValueIfEssential(beandDefinitionValueResolver.java:10
gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.apply属性值
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。populateBean(AbstractAutowireCapableBeanFactory.java
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
G框架。豆。工厂支持AbstractBeanFactory 1美元。getObject(AbstractBeanFactory.java:291)gframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:222)gframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:288)GFramew。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:190)gframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:322)
gframework.beans.factory.BeanCreationExc0019:错误创建在类路径resrnate-context.xml]中定义的名为'SesssionFactory'的bean:调用init方法失败;嵌套异常org.hibernate.HibernateExc0019: Hibernate Di itly setgframework.beans.factory.support.AbstractAutowireCapableBeanF<--plhd-4/>Bean(AbstractAutowireCapableBeanFactory.ja
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
G框架。豆。工厂支持AbstractBeanFactory 1美元。getObject(AbstractBeanFactory.java:291)gframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:222)gframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:288)GFramew。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:190)gframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:322)
内特。HibernateException:必须显式设置Hibernate方言。地方话方言工厂。determineDialect(方言工厂:java:59)nate。地方话方言工厂。builddialent(dialenfactory.java:39)nate。cfg。设置工厂。determineDialect(setingsFactory.java:426)nate。cfg。设置工厂。buildSettings(setingsFactory.java:128)nate。cfg。配置buildSettings(Configuration.java:2073)nate。cfg。配置buildSessionFactory(Configuration.java:1298)gframework。奥姆。冬眠3。LocalSessionFactoryBean。newSessionFactory(LocalSessionFactoryBean.java:860)GFramew。奥姆。冬眠3。LocalSessionFactoryBean。buildSessionFactory(LocalSessionFactoryBean.java:779)GFramew。奥姆。冬眠3。AbstractSessionFactoryBean。AfterPropertieSet(AbstractSessionFactoryBean.java:211)GFramew。豆。工厂支持AbstractAutowireCapableBeanFactory。invokeInitMethods(AbstractAutowireCapableBeanFactory
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。initializeBean(AbstractAutowireCapableBeanFactory.ja
组织。阿帕奇。卡塔琳娜。果心StandardContext listenerStart将上下文初始化事件发送到类org的侦听器实例。露天的。网状物应用程序。ContextListener bean。工厂BeanCreationException:创建名为“encryptionKeysRegistry”的bean时出错,该bean在类路径资源上下文中定义。xml]:设置bean属性“transactionService”的组织时,无法解析对bean“transactionService”的引用。springframework。豆。工厂BeanCreationException:创建名为[alfresco/core services context.xml]中定义的“transactionService”的bean时出错:设置bean属性“”时无法解析对bean“transactionManager”的引用;嵌套的异常是org。springframework。豆。工厂BeanCreationException:创建名为“Transactin类路径资源[alfresco/hibernate context.xml]的bean时出错:设置onFactory'时无法解析对bean“sessionFactory”的引用;嵌套的异常是org。springframework。豆。工厂BeanCreationException:在类路径资源[alfresco/hibernate context.xml]中创建名为“ned”的bean时出错:调用init方法失败;嵌套的异常是org。h异常:Hibernate方言必须显式设置为GFramew。豆。工厂支持BeanDefinitionValueResolver。resolveReference(beandDefinitionValueResolver.java:328)GFramew。豆。工厂支持BeanDefinitionValueResolver。ResolveValueIfEssential(beandDefinitionValueResolver.java:10
gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.apply属性值
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。populateBean(AbstractAutowireCapableBeanFactory.java
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
gframework.beans.factory.support.AbstractBeanFactory$1.get对象(AbstractBeanFactory.java:291)gframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)gframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)gframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190)gframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580
G框架。上下文支持AbstractApplicationContext。finishBeanFactoryInitialization(AbstractApplicationContext.java:89
gframework.context.support.AbstractApplication ationContext.refresh(AbstractApplication ationContext.java:425)gframework.web.context.ContextLoader.createWebApplication ationContext(ContextLoader.java:276)gframework.web.context.ContextLoader.initWebApplication ationContext(ContextLoader.java:197)gframework.web.context.ContextLoaderListener.context初始化(ContextLoaderListener.java:47)sco.web.app.ContextLoaderListener.context初始化(ContextLoaderListener.java:63)e.catalina.core.标准ontext.listener启动(标准ontext.java:4135)<--PLHD--18/>标准ontext.start(Standard. java: 4630)e. catalina. core.ContainerBase. addChild内部(ContainerBase. java: 791)e. catalina. core.ContainerBase. addchild(ContainerBase. java: 771)e. catalina. core.java: 546)e. catalina. startup.java: 637)e. catalina. startup.java: 563)e. catalina. startup.java: 498)e. catalina. startup.HostConfig. start(HostConfig. java: 1277)e. catalina. startup.java: 321)e. catalina. util.生命周期事件支持(生命周期支持. java: 119)e. catalina. core.ContainerBase. start(ContainerBase. java: 1053)e. catalina. core.java: 785)e. catalina. core.ContainerBase. start(ContainerBase. java: 1045)e. catalina. core.java: 445)e. catalina. core.java: 519)e. catalina. core.java: 710)e. catalina. startup.开始(Catalina. java: 581)ct.Nativemethod odAccessorInp. invke0(本地方法)ct.java: 39)ct.委托方法访问或Inp. invoke(委托方法访问或Inp. java: 25)。java: 597)e. catalina. startup.启动(Bootstrap. java: 289)e. catalina. startup.Bootstrap. main(Bootstrap. java: 414)gframework. beans. factory。BeanCreationExcture:创建在类路径core-services-上下文. xml中定义了名为'transactionService'的bean时出错:无法解析对bean'transactionManager'的引用,同时设置bean属性'transacti x0019 is org. springframework. beans. factory.BeanCreation异常:创建名为'transactionManager'h资源的bean时发生错误[alessa co/hibernet-background. xml]:在设置bean正确的嵌套异常是org. springframework. bean. factory时,无法解析对bean'esssionFactory'的引用。BeanCreationExcture:创建名称为'esssionFact的路径资源的bean时出错:调用init方法失败;嵌套异常是org. hibernate。嗨bernate方言必须明确设置gframework. beans. factory. support。Bean定义. ValueResolver. Resolver参考(Bean定义. ValueResolver. java: 328)gframework. beans. factory. support.需要的解决方案
gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.apply属性值
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。populateBean(AbstractAutowireCapableBeanFactory.java
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
G框架。豆。工厂支持AbstractBeanFactory 1美元。getObject(AbstractBeanFactory.java:291)gframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:222)gframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:288)GFramew。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:190)gframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:322)
G框架。豆。工厂BeanCreationException:创建在类路径hibernate上下文中定义了名为“transactionManager”的bean时出错。xml]:设置bean属性“sessionFactory”时无法解析对bean“sessionFactory”的引用;组织。springframework。豆。工厂BeanCreationException:创建在类esco/hibernate上下文中定义的名为“sessionFactory”的bean时出错。xml]:调用init方法失败;嵌套的异常是org。冬眠HibernateException:Hib必须显式设置为GFramew。豆。工厂支持BeanDefinitionValueResolver。resolveReference(beandDefinitionValueResolver.java:328)GFramew。豆。工厂支持BeanDefinitionValueResolver。ResolveValueIfEssential(beandDefinitionValueResolver.java:10
gframework.beans.factory.support.AbstractAutowireCapableBeanFactory.apply属性值
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。populateBean(AbstractAutowireCapableBeanFactory.java
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
G框架。豆。工厂支持AbstractBeanFactory 1美元。getObject(AbstractBeanFactory.java:291)gframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:222)gframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:288)GFramew。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:190)gframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:322)
gframework.beans.factory.BeanCreationExc0019:错误创建在类路径resrnate-context.xml]中定义的名为'SesssionFactory'的bean:调用init方法失败;嵌套异常org.hibernate.HibernateExc0019: Hibernate Di itly setgframework.beans.factory.support.AbstractAutowireCapableBeanF<--plhd-4/>Bean(AbstractAutowireCapableBeanFactory.ja
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。doCreateBean(AbstractAutowireCapableBeanFactory.java
gframework.beans.factory.support.AbstractautowireCapableBeanFactory.createBean(AbstractautowireCapableBeanFactory.java: 4
G框架。豆。工厂支持AbstractBeanFactory 1美元。getObject(AbstractBeanFactory.java:291)gframework。豆。工厂支持DefaultSingletonBeanRegistry。getSingleton(DefaultSingletonBeanRegistry.java:222)gframework。豆。工厂支持抽象工厂。doGetBean(AbstractBeanFactory.java:288)GFramew。豆。工厂支持抽象工厂。getBean(AbstractBeanFactory.java:190)gframework。豆。工厂支持BeanDefinitionValueResolver。resolveReference(BeanDefinitionValueResolver.java:322)
内特。HibernateException:必须显式设置Hibernate方言。地方话方言工厂。determineDialect(方言工厂:java:59)nate。地方话方言工厂。builddialent(dialenfactory.java:39)nate。cfg。设置工厂。determineDialect(setingsFactory.java:426)nate。cfg。设置工厂。buildSettings(setingsFactory.java:128)nate。cfg。配置buildSettings(Configuration.java:2073)nate。cfg。配置buildSessionFactory(Configuration.java:1298)gframework。奥姆。冬眠3。LocalSessionFactoryBean。newSessionFactory(LocalSessionFactoryBean.java:860)GFramew。奥姆。冬眠3。LocalSessionFactoryBean。buildSessionFactory(LocalSessionFactoryBean.java:779)GFramew。奥姆。冬眠3。AbstractSessionFactoryBean。AfterPropertieSet(AbstractSessionFactoryBean.java:211)GFramew。豆。工厂支持AbstractAutowireCapableBeanFactory。invokeInitMethods(AbstractAutowireCapableBeanFactory
G框架。豆。工厂支持AbstractAutowireCapableBeanFactory。initializeBean(AbstractAutowireCapableBeanFactory.ja
com.sun.xml.ws.transport.http.servlet.WSServletContextListener内容初始化AX-WS上下文监听器初始化com.sun.xml.ws.transport.http.servlet.WSServlet委托AX-WS servlet初始化org.apache.catalina.core.标准上下文启动erStartorg.apache.catalina.core.标准上下文启动壁画]启动失败,由于以前的错误com.sun.xml.ws.transport.http.servlet.WSServlet委托销毁AX-WS servlet已销毁com.sun.xml.ws.transport.http.servlet.WSServletContextListener ContextDemroed AX-WS上下文监听器已销毁org.apache.catalina.core.Application ationContext日志根WebApplication ationContextorg.apache.catalina.core.Application Context日志log4jorg.apache.catalina.loader.WebappClassLoader clearThreadLocalMap ication[/alessa co]创建了一个具有类型为[null](值[com.sun.xml.bind.v2.ClassFactory$1@2552fafd])[java.util.WeakHashMap](value[{classjavax.xml.bind.annotation.W3CDomHandler=java.lang.ref.WeakReference@5bee9e20}])b当Web应用程序停止时。org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap ication[/alrey co]创建了一个带有类型为[java.lang.线程本地](value[java.lang.ThreadLocal@ecf7607pe[org.apache.cxf.bus.CXFBusImpl](value[org.apache.cxf.bus.CXFBusImpl@564dcd29]),但当网页被删除时未能删除它。这很可能会造成内存泄漏。ger.repository选择器是null可能是由于类重新加载错误,使用NOPLoggerRepository。
是的,我的命令行参数错误。当参数前缀为“-”时,将删除以前的设置。如果使用前缀“”,则会保存以前的设置,并且一切正常。因此,电话:
C:\AlJeffco\tomcat\bin\tomcat6.exe//RS//alJeffcoTomcat JvmOptions"-Xdebug;-Xrunjdwp:传输=dt_socket,服务器=y,挂起=n,地址=8000"
一切正常:)谢谢!
答案可能涵盖所有框架,但我对SpringMVC案例特别感兴趣。我正在重构一个访问内部数据库和远程服务的服务层。这些方法应该是事务性的,它们需要来自远程服务的数据。下面是类似的伪代码: 这样更容易实现。但是有许多缺点,例如当远程服务调用失败时不必要地创建和回滚事务,由于远程服务调用而导致的事务更长,并且可能更复杂。我正在考虑将服务调用移动到单独的非事务性方法,并调用事务性方法,如下面的代码段所示 假
ThinkPHP5.0版本开始,提供了Socket日志驱动用于本地和远程调试。 Socket调试 只需要在配置文件中设置如下: return [ 'type' => 'socket', 'host' => 'slog.thinkphp.cn', //日志强制记录到配置的client_id 'force_cl
主要内容:1.概述,2. HttpClientConnection,3. HessianProtocol1.概述 Hessian 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现。 本文涉及类图(红圈部分)如下: 2. HttpClientConnection 实现 HessianConnection 接口,HttpClient 连接器实现类。 2.1 HttpClientConnec
主要内容:1. 概述,2. AbstractProxyProtocol,3. HttpProtocol1. 概述 基于 HTTP 表单的远程调用协议,采用 Spring 的 HttpInvoker 实现 涉及类图(红圈部分)如下: 2. AbstractProxyProtocol 现 AbstractProtocol 抽象类,Proxy 协议抽象类。为 HttpProtocol 、RestProtocol 等子类,提供公用的服务暴露、服务引用的公用方法,同时定义了如下抽象方法,用于不同子类协议实
我必须使用SpringBoot2.0.5从web应用程序构建中调用远程RESTendpoint 我可以使用HttpURLConnection,但由于Spring使用RestTemplate,我检查了它是什么,发现它很快就会被弃用: https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/clien
本文向大家介绍VSCode远程开发调试服务器c/c++代码,包括了VSCode远程开发调试服务器c/c++代码的使用技巧和注意事项,需要的朋友参考一下 思路与上篇(PyCharm远程调试服务器python代码 )是一致的,所以端口转发这部分直接照抄上篇: 一、端口转发 对于没有公网IP的远程训练服务器,需要先配置端口转发,可以用ssh借道有办公网IP的办公机器。 0、公司给配置了一台Ubuntu系