frp后台运行
1. 使用 & 在后台运行你可以简单地在命令末尾加上 &,让 frps 以后台进程的形式启动:
1./frps -c ./frps.toml &
这种方式会在后台运行 frps,并且你会看到进程的 PID(进程ID),你可以使用 jobs 或 ps 来查看进程。
2. 使用 nohup 命令nohup 命令可以让程序在后台运行,并且即使关闭终端会话,进程也不会被终止。你可以这样使用:
1nohup ./frps -c ./frps.toml > frps.log 2>&1 &
nohup:使程序在后台运行并忽略终端退出的信号。
> frps.log 2>&1:将标准输出和标准错误输出都重定向到 frps.log 文件。
&:将进程放到后台运行。
3. 使用 systemd 管理服务如果你希望 frps 作为系统服务在后台长期运行,你可以创建一个 systemd 服务来管理它。以下是一个基本的示例:
步骤:
创建一个 frps 的 systemd 服务文件:
1sudo vi /et ...
编程开发
未读搭建Frp内网穿透服务
admin
2年前发布 /未收录,已推送
0 1,796 0
温馨提示:
本文最后更新于2024年01月08日,已超过514天没有更新,若内容或图片失效,请留言反馈。
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
开源地址:FRP github网址
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
客户端服务端通信支持 ...
内网穿透及常见工具什么是内网穿透在了解内网穿透原理之前,我们先说什么是内网穿透。内网,就是在公司或者家庭内部,建立的局域网络或者是办公网络,可以实现多台电脑之间的资源共享,包括设备、资料、数据等。而外网则是通过一个网关与其它的网络系统连接,相对于内网而言,这种网络系统称之为外部网络,常见的就是我们日常使用的互联网。
一般而言,在没有固定公网IP的情况下,外网设备无法直接访问内网设备。而内网穿透技术,顾名思义就是能让外网的设备找到处于内网的设备,从而实现数据通信。
内网穿透的原理内网穿透,又称为NAT穿透。NAT背后的设备,它们的主要特点是 ,可以访问外网,但不能被外网设备有效访问。基于这一特点,NAT穿透技术是让NAT背后的设备,先访问指定的外网服务器,由指定的外网服务器搭建桥梁,打通内、外网设备的访问通道,实现外网设备访问到内网设备。
该技术除了可以访问隐藏在NAT后的设备,同样可以穿透防火墙。这是因为防火墙一般只拦截了入站没有拦截出站,所以也可以让防火墙内的设备对外提供服务。
由于内网设备并不是与外网设备直接相连,所以在安全性上是毋庸置疑的,内网穿透可以说是安全与效率兼得。
如 ...
编程开发
未读Tomcat部署全攻略:6种方式从入门到自动化,运维工程师必收藏作为Linux运维工程师,Tomcat部署是一定会遇到的基础操作。
今天,梳理一遍Tomcat的6种部署之路,从新手级的手动操作到运维级的自动化部署,每种方式的实操步骤、优缺点和适用场景都讲透,看完直接套用!
一、新手入门:传统WAR包拷贝部署(webapps目录)
这是最经典也最基础的部署方式,几乎所有运维新手的第一次Tomcat部署都是从这里开始的。实操步骤:
准备好项目的WAR包(如myapp.war),确保包内目录结构完整(WEB-INF、classes等核心目录齐全);
进入Tomcat安装目录,找到核心部署目录apache-tomcat-9.0/webapps/;
直接将myapp.war拷贝到webapps目录下;
启动Tomcat(执行bin/startup.sh),Tomcat会自动解压WAR包为myapp文件夹并完成部署;
验证:浏览器访问 http://服务器IP:8080/myapp,能正常访问则部署成功。
优点:零配置、操作简单,适合单机 ...
一篇搞懂Tomcat ,运维小白也能轻松上手!tomcat使用• 前置知识-
• tomcat概念
• tomcat作用
• 安装部署tomcat
• 环境信息
• 安装jdk
• 安装tomcat
• 启动tomcat
• tomcat目录结构
• bin目录
• conf目录
• logs目录
• webapps目录
• 案例:部署zrlog应用
• tomcat部署多实例
• 背景
• 部署步骤
前置知识tomcat概念Tomcat是由Java编写的一个开源的、轻量级的应用服务器,是Apache软件基金会的一个项目。它实现了Java Servlet、JavaServer Pages(JSP)和Java Expression Language(EL)等Java技术,用于支持在Java平台上运行的动态Web应用程序。Tomcat的全名是Apache Tomcat。
tomcat作用Tomcat 是一个开源的 Java Servlet 容器,主要用于运行 Java Web 应用程序。
运行 Java Web 应用程序
• Servlet 和 JSP 支持Tomca ...
12个提升日常效率的Python脚本1. 剪贴板历史记录器1234567891011121314151617import timeimport pypercliphistory = []defclipboard_logger(): recent_value = "" whileTrue: tmp_value = pyperclip.paste() if tmp_value != recent_value: recent_value = tmp_value history.append(recent_value) print(f"Copied: {recent_value}") time.sleep(1)clipboard_logger()
用途:自动记录剪贴板历史,可随时找回之前复制的内容,相当于给 Ctrl+C 加了“撤销”功能。
2. Wi-Fi 密码快速提取12345678910111213impor ...
Python 类的正确打开方式:从新手到进阶的第一步学 Python 的人,大多数都会在某个阶段被“类”卡住。刚接触的时候,很多人都会觉得:“这东西好抽象啊,像不像传说中的编程黑魔法?”😵
别慌,其实类没那么神秘。你可以把它想成生活里常见的“模具”或者“样板”。就像裁缝做衣服,先得有个样板,才能照着样板去裁布、缝衣服。类就是那个样板,而衣服就是你根据样板做出来的“对象”。
今天,我们就把 Python 的类从头到尾聊一遍,不整花里胡哨的玄学,把它拆开、讲透,让你读完之后能说一句:“哦,原来就这回事啊!”
一、类与对象:从生活例子讲起假设你家里有一只猫,叫 Mimi,今年 2 岁。你想在代码里把它记录下来,该怎么办?
先来点最直接的:
123456789class Cat: def __init__(self, name, age): self.name = name # 属性:姓名 self.age = age # 属性:年龄# 基于类创建对象my_cat = Cat("Mimi", 2)print(my_cat.na ...
编程开发
未读PyCharm 常用快捷键1、代码编辑快捷键
序号
快捷键
作用
1
CTRL+ALT+SPACE
快速导入任意类
2
CTRL+SHIFT+ENTER
代码补全
3
SHIFT+F1
查看外部文档
4
CTRL+Q
快速查找文档
5
CTRL+P
参数信息(在方法中调用的参数)
6
CTRL+MOUSEOVERCODE
基本信息
7
CTRL+F1
显示错误或警告的描述
8
CTRL+INSERT
生成代码
9
CTRL+O
重载方法
10
CTRL+ALT+T
包裹代码
11
CTRL+/
单行注释
12
CTRL+SHIFT+/
块注释
13
CTRL+W
逐步选择代码(块)
14
CTRL+SHIFT+W
逐步取消选择代码(块)
15
CTRL+SHIFT+[
从当前位置选择到代码块的开始
16
CTRL+SHIFT+]
从当前位置选择到代码块的结束
17
ALT+ENTER
代码快速修正
18
CTRL+ALT+L
代码格式标准化
19
CTRL+ALT+O
最佳化导入
...
Python 类全解析:静态方法、类方法、类变量
★
“Python 是一门面向对象的语言。” 很多初学者看到这句话时,脑子里可能会冒出一个问号:“面向对象”到底是什么意思?类、对象、方法、变量,这些名词我应该怎么理解?”
今天这篇文章,我们就一次性把这些问题讲透,并顺便聊聊静态方法、类方法、类属性等开发中很容易混淆的概念,还会带你看一个实用的工厂模式案例。
1. 面向对象是什么?简单说,面向对象编程(OOP)是一种编程思想,把代码组织成类(class)和对象(object)。
类:是对象的蓝图,相当于一份设计图。
对象:是类的实例,就像根据设计图造出来的实物。
📌 生活类比:
“人类”是一份类
你、我、小王就是不同的对象
123456789class Person: def __init__(self, name): self.name = name def say_hello(self): print(f"你好,我是 {self.name}")p = Person("小王&quo ...
Python 基础语法2:组合数据类型、异常6、数据组合类型
(1)序列在python中,有这样一些类型,它们的成员是有序排列的,并且可以通过下标访问成员,这些类型称之为序列;序列包括:列表、range、元组和字符串;
在字符串中的很多操作,序列也是支持的,部分常用的函数如下:
函数
描述
备注
len(item)
计算容器中元素个数
del(item)
删除变量
del 有两种方式
max(item)
返回容器中元素最大值
如果是字典,只针对 key 比较
min(item)
返回容器中元素最小值
如果是字典,只针对 key 比较
描述
Python****表达式
结果
支持的数据类型
切片
“0123456789”[::-2]
“97531”
字符串、列表、元组
序列的通用操作包括如下:
运算符
Python****表达式
结果
描述
支持的数据类型
+
[1, 2] + [3, 4]
[1, 2, 3, 4]
合并
字符串、列表、元组
*
[“Hi!”] * 4
[‘Hi!’, ‘Hi!’, ‘Hi! ...
