首页
直播
壁纸
免责声明
更多
统计
关于
Search
1
一款自动化渗透工具包 TscanPlus
225 阅读
2
获取一张美国虚拟信用卡
223 阅读
3
JS Document.evaluate()的使用
199 阅读
4
Git冲突:Please commit your changes or stash them before you merge
176 阅读
5
Python 31条 pip 命令全解析
164 阅读
默认分类
操作系统
Linux
管理面板
实用工具
开发语言
PHP
Web
python
typecho
ThinkPHP
layui
爬虫
文章分享
登录
Search
标签搜索
python
php
web
linux
Git
js
requests
自动化
宝塔
thinkphp
Centos
adb
html
typecho
layui
jquery
ubuntu
multipass
虚拟机
thikphp
YiYun
累计撰写
54
篇文章
累计收到
21
条评论
首页
栏目
默认分类
操作系统
Linux
管理面板
实用工具
开发语言
PHP
Web
python
typecho
ThinkPHP
layui
爬虫
文章分享
页面
直播
壁纸
免责声明
统计
关于
搜索到
54
篇与
的结果
2024-04-18
Python 31条 pip 命令全解析
首先,pip 是个啥?简单来说,pip 就是 Python 的包管理器,就像手机里的应用商店一样,可以方便地帮你安装、升级或卸载 Python 的各种第三方库。命令 1:安装 pip如果你是Python新手,很可能系统已经自带pip。验证是否已安装,只需在命令行输入:python -m pip --version若未安装,可参考官方指引进行安装。命令 2:安装 Python 库想装个requests库试试水?一句命令搞定!pip install requests这就是pip最基础也是最常见的用法,它会自动处理库及其依赖关系。命令 3:升级库世界日新月异,库也要保持最新状态。要升级已安装的所有库:pip list --outdated # 查看待升级库 pip upgrade <package_name> # 升级指定库命令 4:卸载库不再需要某个库时,我们可以这样卸载:pip uninstall <package_name>命令 5:搜索库在决定安装某个库之前,你可能想先了解下有哪些可用的库能满足你的需求。这时可以使用 search 命令:pip search <keyword>比如查找与机器学习相关的库,你可以输入 pip search machine learning 。命令 6:查看已安装库详细信息想知道已安装的库具体版本和其他详情? show 命令可以帮助你:pip show <package_name>命令 7:只下载库而不安装有时你可能需要离线环境安装包或者备份当前环境的依赖,那么可以使用 download 命令只下载不安装:pip download <package_name>命令 8:创建requirements文件在项目开发中,为了方便团队成员统一环境,我们可以创建一个包含所有依赖的 requirements 文件:pip freeze > requirements.txt这会列出当前环境中所有已安装库及其版本,并保存到 requirements.txt 文件中。而要根据这个文件安装所有依赖,只需:pip install -r requirements.txt命令 9:指定库版本安装在某些情况下,你可能需要安装特定版本的库,比如安装 requests 库的2.25.1版本:pip install requests==2.25.1命令 10:检查是否存在安全漏洞pip 配合 Safety 工具可以检查已安装库的安全性:pip install safety safety check --full-report这会扫描所有已安装的库,并报告是否有已知的安全漏洞。命令 11:创建虚拟环境并激活为了避免不同项目间依赖冲突,我们通常会在每个项目下创建独立的虚拟环境,然后使用 pip 进行管理:python -m venv my_project_env # 创建虚拟环境 source my_project_env/bin/activate # Linux/Mac激活环境 my_project_env\Scripts\activate.bat # Windows激活环境在虚拟环境中,你可以放心使用 pip 安装和管理项目的专属依赖。命令 12:清理未使用的库或缓存随着项目迭代,有些不再使用的库可能会被遗忘,这时可以使用 autoremove 命令来清除:pip-autoremove <package_name>同时,你也可以清理 pip 下载缓存以释放磁盘空间:pip cache purge命令 13:查看 pip 自身的版本信息及更新 pip要查看 pip 本身的版本,只需运行:pip --version为了确保 pip 始终保持最新,可使用如下命令升级 pip 自身:python -m pip install --upgrade pip当然,pip 的功能确实丰富多样,让我们继续探索:命令 14:指定源安装库在某些网络环境下,可能需要从国内镜像或者其他自定义源下载和安装库。例如使用阿里云的Python 镜像源:pip install -i https://mirrors.aliyun.com/pypi/simple/ <package_name>或永久更改 pip 默认源(推荐在配置文件中修改):pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/命令 15:分发本地构建的库如果你自己开发了一个 Python 包,并希望在本地测试安装,可以先打包成 whl 或 tar.gz 格式,然后通过 pip 进行安装:# 假设你已经将项目打包为my_package-0.1.0.whl pip install ./my_package-0.1.0.whl命令 16:查看库安装路径如果想知道某个库具体安装在系统哪个位置,可以使用 show --files 选项:pip show --files <package_name>命令 17:在安装时跳过测试有些库在安装过程中会执行单元测试,若想快速安装可选择跳过这些测试:pip install --no-deps --ignore-installed --no-cache-dir --disable-pip-version-check --no-compile <package_name>命令 18:列出所有全局安装的库获取全局环境下的所有已安装Python库列表:pip list命令 19:在安装时指定额外选项某些库可能在安装时需要额外参数,比如 numpy 、 scipy 等科学计算库,你可以直接在 pip 命令中传递这些选项:pip install numpy --install-option="--openblas"这里的 --openblas 是一个示例,实际选项请根据库文档进行设置。命令 20:查看依赖树要了解一个包及其所有依赖关系,可以使用 deptree 第三方工具:pip installdeptree deptree -l <package_name>这将展示指定包及其所有依赖项之间的层级关系。命令 21:修复损坏的库如果某个库在安装或升级过程中出现问题导致无法正常使用,可以尝试修复它:pip install --force-reinstall <package_name>命令 22:获取库的源码如果你对某个库的实现细节感兴趣,可以通过 pip 下载其源代码:pip download <package_name> --no-binary :all:然后在下载目录中找到对应的 tar.gz 或 whl 文件解压查看。命令 23:执行pip的自定义脚本有些开发者可能会编写自定义的 pip 脚本来自动化一些任务,你可以通过 run 命令执行:pip run my_script.py命令 24:在安装时指定 Python 版本如果你有多个Python版本并希望为特定版本安装库:python3.7 -m pip install <package_name>这里 python3.7 替换成你想要使用的Python解释器路径。命令 25:检查依赖冲突在项目中可能存在不兼容的依赖版本,可以使用 pipdeptree 第三方工具来检测:pip install pipdeptree pipdeptree --packages <package_name>这将展示指定包及其依赖项之间是否存在版本冲突。命令 26:创建独立可执行文件借助 pyinstaller 等工具,你可以通过pip将Python程序打包成一个独立可执行文件:pip install pyinstaller pyinstaller your_script.py命令 27:管理用户级别的包默认情况下,pip 会安装全局系统级别的包。若想为当前用户安装不影响系统的包,可以加上 --user 选项:pip install --user <package_name>命令 28:只升级指定的包而不升级所有包当只需要更新某个特定的库时,可以使用 --upgrade 选项:pip install --upgrade <package_name>命令 29:批量卸载多个包如果需要一次性卸载多个Python包,可以通过列表形式提供包名:pip uninstall <package1> <package2> ...命令 30:冻结当前环境下的所有包及其版本为了能够复制或记录当前环境中所有已安装包的状态,可以生成一个 requirements 文件:pip freeze > requirements.txt这将把所有已安装包及其版本号写入 requirements.txt 文件中,便于在其他环境下复现相同的软件环境。命令 31:根据requirements文件创建虚拟环境并安装包结合虚拟环境(如venv或conda),可以从requirements文件重新构建环境:python -m venv my_venv source my_venv/bin/activate # Windows: my_venv\Scripts\activate.bat pip install -r requirements.txt
2024年04月18日
164 阅读
3 评论
0 点赞
2024-04-18
14个Python自动化实战脚本
1、批量文件重命名神器在工作中,我们常常需要对大量文件进行批量重命名,Python帮你轻松搞定! import os def batch_rename(path, prefix='', suffix=''): for i, filename in enumerate(os.listdir(path)): new_name = f"{prefix}{i:03d}{suffix}{os.path.splitext(filename)[1]}" old_file = os.path.join(path, filename) new_file = os.path.join(path, new_name) os.rename(old_file, new_file) # 使用示例: batch_rename('/path/to/your/directory', 'file_', '.txt')2、自动发送邮件通知告别手动发送,用Python编写定时发送邮件的自动化脚本。import smtplib from email.mime.text import MIMEText def send_email(to_addr, subject, content): smtp_server = 'smtp.example.com' username = 'your-email@example.com' password = 'your-password' msg = MIMEText(content) msg['Subject'] = subject msg['From'] = username msg['To'] = to_addr server = smtplib.SMTP(smtp_server, 587) server.starttls() server.login(username, password) server.sendmail(username, to_addr, msg.as_string()) server.quit() # 使用示例: send_email('receiver@example.com', '每日报告提醒', '今日报告已生成,请查收。')3、定时任务自动化执行使用Python调度库,实现定时执行任务的自动化脚本。import schedule import time def job_to_schedule(): print("当前时间:", time.ctime(), "任务正在执行...") # 定义每天9点执行任务 schedule.every().day.at("09:00").do(job_to_schedule) while True: schedule.run_pending() time.sleep(1) # 使用示例: # 运行此脚本后,每天上午9点会自动打印当前时间及提示信息4、数据库操作自动化简化数据库管理,Python帮你自动化执行CRUD操作。import sqlite3 def create_connection(db_file): conn = None try: conn = sqlite3.connect(db_file) print(f"成功连接到SQLite数据库:{db_file}") except Error as e: print(e) return conn def insert_data(conn, table_name, data_dict): keys = ', '.join(data_dict.keys()) values = ', '.join(f"'{v}'" for v in data_dict.values()) sql = f"INSERT INTO {table_name} ({keys}) VALUES ({values});" try: cursor = conn.cursor() cursor.execute(sql) conn.commit() print("数据插入成功!") except sqlite3.Error as e: print(e) # 使用示例: conn = create_connection('my_database.db') data = {'name': 'John Doe', 'age': 30} insert_data(conn, 'users', data) # 在适当时候关闭数据库连接 conn.close()5、网页内容自动化抓取利用BeautifulSoup和requests库,编写Python爬虫获取所需网页信息。import requests from bs4 import BeautifulSoup def fetch_web_content(url): response = requests.get(url) if response.status_code == 200: soup = BeautifulSoup(response.text, 'html.parser') # 示例提取页面标题 title = soup.find('title').text return title else: return "无法获取网页内容" # 使用示例: url = 'https://example.com' web_title = fetch_web_content(url) print("网页标题:", web_title)6、数据清洗自动化使用Pandas库,实现复杂数据处理和清洗的自动化。import pandas as pd def clean_data(file_path): df = pd.read_csv(file_path) # 示例:处理缺失值 df.fillna('N/A', inplace=True) # 示例:去除重复行 df.drop_duplicates(inplace=True) # 示例:转换列类型 df['date_column'] = pd.to_datetime(df['date_column']) return df # 使用示例: cleaned_df = clean_data('data.csv') print("数据清洗完成,已准备就绪!")7、图片批量压缩用Python快速压缩大量图片以节省存储空间。from PIL import Image import os def compress_images(dir_path, quality=90): for filename in os.listdir(dir_path): if filename.endswith(".jpg") or filename.endswith(".png"): img = Image.open(os.path.join(dir_path, filename)) img.save(os.path.join(dir_path, f'compressed_{filename}'), optimize=True, quality=quality) # 使用示例: compress_images('/path/to/images', quality=80)8、文件内容查找替换Python脚本帮助你一键在多个文件中搜索并替换指定内容。import fileinput def search_replace_in_files(dir_path, search_text, replace_text): for line in fileinput.input([f"{dir_path}/*"], inplace=True): print(line.replace(search_text, replace_text), end='') # 使用示例: search_replace_in_files('/path/to/files', 'old_text', 'new_text')9、日志文件分析自动化通过Python解析日志文件,提取关键信息进行统计分析。def analyze_log(log_file): with open(log_file, 'r') as f: lines = f.readlines() error_count = 0 for line in lines: if "ERROR" in line: error_count += 1 print(f"日志文件中包含 {error_count} 条错误记录。") # 使用示例: analyze_log('application.log')10、数据可视化自动化利用Matplotlib库,实现数据的自动图表生成。import matplotlib.pyplot as plt import pandas as pd def visualize_data(data_file): df = pd.read_csv(data_file) # 示例:绘制柱状图 df.plot(kind='bar', x='category', y='value') plt.title('数据分布') plt.xlabel('类别') plt.ylabel('值') plt.show() # 使用示例: visualize_data('data.csv')11、邮件附件批量下载通过Python解析邮件,自动化下载所有附件。import imaplib import email from email.header import decode_header import os def download_attachments(email_addr, password, imap_server, folder='INBOX'): mail = imaplib.IMAP4_SSL(imap_server) mail.login(email_addr, password) mail.select(folder) result, data = mail.uid('search', None, "ALL") uids = data[0].split() for uid in uids: _, msg_data = mail.uid('fetch', uid, '(RFC822)') raw_email = msg_data[0][1].decode("utf-8") email_message = email.message_from_string(raw_email) for part in email_message.walk(): if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: continue filename = part.get_filename() if bool(filename): file_data = part.get_payload(decode=True) with open(os.path.join('/path/to/download', filename), 'wb') as f: f.write(file_data) mail.close() mail.logout() # 使用示例: download_attachments('your-email@example.com', 'your-password', 'imap.example.com')12、定时发送报告自动化根据数据库或文件内容,自动生成并定时发送日报/周报。import pandas as pd import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart def generate_report(source, to_addr, subject): # 假设这里是从数据库或文件中获取数据并生成报告内容 report_content = pd.DataFrame({"Data": [1, 2, 3], "Info": ["A", "B", "C"]}).to_html() msg = MIMEMultipart() msg['From'] = 'your-email@example.com' msg['To'] = to_addr msg['Subject'] = subject msg.attach(MIMEText(report_content, 'html')) server = smtplib.SMTP('smtp.example.com', 587) server.starttls() server.login('your-email@example.com', 'your-password') text = msg.as_string() server.sendmail('your-email@example.com', to_addr, text) server.quit() # 使用示例: generate_report('data.csv', 'receiver@example.com', '每日数据报告') # 结合前面的定时任务脚本,可实现定时发送功能13、自动化性能测试使用Python的 locust 库进行API接口的压力测试。from locust import HttpUser, task, between class WebsiteUser(HttpUser): wait_time = between(5, 15) # 定义用户操作之间的等待时间 @task def load_test_api(self): response = self.client.get("/api/data") assert response.status_code == 200 # 验证返回状态码为200 @task(3) # 指定该任务在总任务中的执行频率是其他任务的3倍 def post_data(self): data = {"key": "value"} response = self.client.post("/api/submit", json=data) assert response.status_code == 201 # 验证数据成功提交后的响应状态码 # 运行Locust命令启动性能测试: # locust -f your_test_script.py --host=http://your-api-url.com14、自动化部署与回滚脚本使用Fabric库编写SSH远程部署工具,这里以部署Django项目为例:from fabric import Connection def deploy(host_string, user, password, project_path, remote_dir): c = Connection(host=host_string, user=user, connect_kwargs={"password": password}) with c.cd(remote_dir): c.run('git pull origin master') # 更新代码 c.run('pip install -r requirements.txt') # 安装依赖 c.run('python manage.py migrate') # 执行数据库迁移 c.run('python manage.py collectstatic --noinput') # 静态文件收集 c.run('supervisorctl restart your_project_name') # 重启服务 # 使用示例: deploy( host_string='your-server-ip', user='deploy_user', password='deploy_password', project_path='/path/to/local/project', remote_dir='/path/to/remote/project' ) # 对于回滚操作,可以基于版本控制系统实现或创建备份,在出现问题时恢复上一版本的部署。
2024年04月18日
60 阅读
0 评论
0 点赞
2024-04-12
JS Document.evaluate()的使用
Document 接口的 evaluate() 方法根据参数中给出的 XPath 表达式选择元素。 XPath 表达式可以在 HTML 和 XML 文档上进行计算。Syntaxjsevaluate(xpathExpression, contextNode, namespaceResolver, resultType, result)ParametersxpathExpression 表示要评估的 xpath 的字符串。contextNode 查询的上下文节点(请参阅 XPath specificatio )。通常将 document 作为上下文节点传递。namespaceResolver 将传递任何命名空间前缀的函数,并应返回表示与该前缀关联的命名空间 URI 的字符串。它将用于解析 xpath 本身内的前缀,以便它们可以与文档匹配。 null 值对于 HTML 文档或不使用命名空间前缀时很常见。resultType 与要返回的结果 XPathResult 的类型相对应的整数。以下值是可能的: ANY_TYPE (0) 无论什么类型都会自然地由给定的表达式产生。 NUMBER_TYPE (1) 包含单个数字的结果集。例如,在使用 count() 函数的 xpath 表达式中很有用。 STRING_TYPE (2) 包含单个字符串的结果集。 BOOLEAN_TYPE (3) 包含单个 boolean 值的结果集。例如,使用 not() 函数的 xpath 表达式很有用。 UNORDERED_NODE_ITERATOR_TYPE (4) 包含与表达式匹配的所有节点的结果集。结果集中的节点不一定与它们在文档中出现的顺序相同。 注意:此类型的结果包含对文档中节点的引用。修改节点将使迭代器失效。修改节点后,尝试迭代结果将导致错误。 ORDERED_NODE_ITERATOR_TYPE (5) 包含与表达式匹配的所有节点的结果集。结果集中的节点的顺序与它们在文档中出现的顺序相同。 注意:此类型的结果包含对文档中节点的引用。修改节点将使迭代器失效。修改节点后,尝试迭代结果将导致错误。 UNORDERED_NODE_SNAPSHOT_TYPE (6) 包含与表达式匹配的所有节点的快照的结果集。结果集中的节点不一定与它们在文档中出现的顺序相同。 注意:这种类型的结果是快照,本质上是匹配节点的列表。您可以通过更改快照节点来更改文档。修改文档不会使快照失效;但是,如果文档发生更改,快照可能与文档的当前状态不对应,因为节点可能已移动、更改、添加或删除。 ORDERED_NODE_SNAPSHOT_TYPE (7) 包含与表达式匹配的所有节点的快照的结果集。结果集中的节点的顺序与它们在文档中出现的顺序相同。 注意:这种类型的结果是快照,本质上是匹配节点的列表。您可以通过更改快照节点来更改文档。修改文档不会使快照失效;但是,如果文档发生更改,快照可能与文档的当前状态不对应,因为节点可能已移动、更改、添加或删除。 ANY_UNORDERED_NODE_TYPE (8) 包含与表达式匹配的任何单个节点的结果集。该节点不一定是文档中与表达式匹配的第一个节点。 FIRST_ORDERED_NODE_TYPE (9) 包含文档中与表达式匹配的第一个节点的结果集。result 用于获取结果的现有 XPathResult 。如果设置为 null 该方法将创建并返回一个新的 XPathResult 。Return value链接到所选节点的 XPathResult 。如果 result 是 null ,则它是一个新对象,如果不是,则它与作为 result 参数传递的对象相同Examplesjsconst headings = document.evaluate( "/html/body//h2", document, null, XPathResult.ANY_TYPE, null, ); /* 在文档中搜索所有 h2 元素。* 结果可能是一个无序的节点迭代器。*/ let thisHeading = headings.iterateNext(); let alertText = "Level 2 headings in this document are:\n"; while (thisHeading) { alertText += `${thisHeading.textContent}\n`; thisHeading = headings.iterateNext(); } alert(alertText); // 提醒所有 h2 元素的文本请注意,在上面的示例中,更详细的 xpath 优于常见的快捷方式(例如 //h2 )。一般来说,如上例所示,更具体的 xpath 选择器通常会带来显着的性能改进,尤其是在非常大的文档上。这是因为评估查询所花费的时间不会浪费时间访问不必要的节点。使用 // 通常很慢,因为它会访问根节点和所有子节点中的每个节点以查找可能的匹配项。通过仔细使用上下文参数可以实现进一步的优化。例如,如果您知道要查找的内容位于 body 标记内的某个位置,则可以使用以下内容:jsdocument.evaluate(".//h2", document.body, null, XPathResult.ANY_TYPE, null);请注意,上面使用 document.body 而不是 document 作为上下文,因此 xpath 从 body 元素开始。(在此示例中, "." 非常重要,它表明查询应从上下文节点 document.body 开始。如果省略 "." (留下 //h2 ),则查询将从根节点 ( html ) 开始,这会更有效。浪费。)请参阅 Introduction to using XPath in JavaScript 了解更多信息。Specifications{card-describe title="Specification"} DOM 标准 # dom-xpathevaluatorbase-evaluate {/card-describe}原文出处:https://runebook.dev/zh/docs/dom/document/evaluate#xpathexpression
2024年04月12日
199 阅读
3 评论
0 点赞
2024-04-10
获取一张美国虚拟信用卡
拥有一张海外信用卡可以非常方便的使用很多的国外服务或购买国外软件等等,其中子凡我目前觉得最方便的就是能都定于 ChatGPT Plus 会员以及 OpenAI API 账单的支付,当然还能够方便的购买一些国外服务器。但是身在国内的我来说,几乎不太可能直接申请得到一张实体海外信用卡,所有这个时候子凡我就找到了一个能够提供美国虚拟信用卡的平台。下面子凡就简单的分享一下如何选择和获取一张美国虚拟信用卡。如何选择虚拟信用卡其实海外虚拟信用卡平台还是挺多,例如 Dupay(原 Depay)就是一个比较不错的虚拟信用卡平台,但是由于该平台的充值只能使用虚拟货币,所有对于国内很多用户实在是门槛太高了。所有子凡我找到了“WildCard 虚拟信用卡”一个可以直接通过手机号码注册登录,支付宝实名认证,使用云闪付/微信/支付宝等多种方法进行充值,开卡费和手续费也更低,并且提供美国远程环境,可以轻松用于绑定 OpenAI 和 ChatGPT 的付费使用,WildCard 还支持多卡模式,可以方便公司或有多个账户的用户轻松管理多个卡片,开卡金额更加优惠。WildCard 官方网址 :https://zhangzifan.com/go/wildcard (使用邀请码“LEIXUE”可以享受开卡 88 折优惠,注册时提示填写邀请码就可以填写,否则通过链接直接享受 88 折优惠)如果担心自己不会注册和开卡的可以继续往后查看子凡分享的详细操作步骤,否则直接通过链接(zhangzifan.com/go/wildcard)直接进入官网开始注册账号,根据提示验证和充值开卡即可。如何申请 WildCard 美国虚拟信用卡1.打开 WildCard 官方网站地址 zhangzifan.com/go/wildcard 直接进行账号注册和开卡;2.输入手机号码,点击“获取”并输入验证码,然后点击“继续”按钮。(如果有“输入邀请码”的框,可以输入“LEIXUE”享受开卡费 88 折优惠,没有输入框的直接就是 88 折开卡优惠);3.继续点击页面的“开始验证”按钮进入信息填写,便于账户的开通和实名验证;4.根据页面提示需要输入完整的姓名和身份证号码等信息,注意拼音不要写错了,填写完成后点击“继续”按钮,可能会提示你确认您的姓名全称;5.打开手机的支付宝扫描页面中的二维码进行人脸验证,手机支付宝上验证成功后点击页面的“已验证”即可进入到“支付费用”进行开户操作;6.注意看清楚页面所有的权益和注销政策以及收费等明细,没问题就可以点击“去支付”进行开卡费用的支付,支付成功后即可成功开通美国虚拟信用卡。如果你通过 zhangzifan.com/go/wildcard 开始注册或输入了“LEIXUE”邀请码,页面就会显示“已享受邀请 88 折”。虚拟信用卡使用注意事项WildCard 本质上是其实就是一种虚拟借记卡,开卡后余额为 0,如果不充值是无法扣费使用的,所有需要在充值后再进行订阅/支付。为了成功把绑定 OpenAI 或开通 ChatGPT Plus 会员可以使用 WildCard 提供的“远程环境”登录和绑定账号,切记未充值不要去绑定,因为绑定信用卡时平台会进行扣费验证,如果余额为零就会照成绑卡失败和增加消费失败率。声明 :WildCard 虚拟信用卡平台也是我在网上找到的一个平台,除了邀请奖励外没有任何经济利益,也只是一个普通用户,我也无法向大家承诺和担保关于该平台的运行情况,所以请大家理性对待和慎重的选择,每次使用不要充值过多的余额,任何关于该平台的使用和操作,或者绑定失败的都可以联系 WildCard 网页上的在线客服,我也试过人工客服,除了有点慢以为暂时没有发现其他问题。原文出处:https://zhangzifan.com/how-get-us-virtual-credit-card.html
2024年04月10日
223 阅读
6 评论
0 点赞
2024-04-10
轻松搭建 VPN 服务器
前言 随着工作的多样化,办公场地也不局限于公司或家里,有些时候我们需要访问内网资源,而互联网不能直接访问到内网资源,常见的就是部署VPN服务器。 今天给搭建介绍一款开源的 VPN 软件: OpenVPN步骤准备工作 通过安装脚本即可进行安装,可使用以下任意一种方式下载到安装脚本⭕ 直接通过官网的脚本进行安装 在 Linux 系统下,执行以下命令wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh⭕ 直接访问 github ,复制脚本的内容到本地,生成一个安装脚本https://github.com/Nyr/openvpn-install/blob/master/openvpn-install.sh⭕ 这里提供了一个下载地址,可以直接下载到安装脚本,扫码进行下载安装 如果是下载脚本的方式,先把脚本上传到 Linux 服务器,并授予执行权限chmod +x openvpn-install.sh执行安装脚本之后,根据提示进行设置./openvpn-install.sh选择服务器的IP地址设置公网能访问到的 IP 地址,如果有自己的域名,建议输入域名地址为了安全性,不被端口探测,我们选择推荐的 UDP 协议输入 VPN 服务的端口,一般使用默认的即可选择 DNS 服务器,一般使用本机的配置即可安装过程会生成一个客户端账号,我们输入一个并回车按下回车开始安装当出现以下信息时,说明是安装成功了日志的倒数第二行提示生成的客户端账号配置文件保存在/root/pande.ovpn客户端程序在连接VPN时需要有这个配置文件客户端程序扫码下载或者从 百度网盘 下载{mtitle title="提取码: knef"/}配置服务器 服务的配置信息存储在以下文件/etc/openvpn/server/server.conf服务脚本为systemctl status openvpn-server@server.service客户端 安装过程生成的账号对应的配置文件,是不带有密码的/root/pande.ovpn客户端连接安装 安装客户端程序。安装过程比较简单,只需要几步就能安装好提示客户端账号的配置文件需要放在其中一个目录下把客户端配置文件放入安装目录下的配置目录。在这个例子中,把服务器上生成的 /root/pande.ovpn 文件放到以上其中一个目录下。启动 双击桌面上的快捷方式打开客户端程序右键点击任务栏上的图标,选择【连接】这样就能连接上VPN服务器了。更多的介绍请访问官网进行查看:https://github.com/Nyr/openvpn-install写在最后经过简单的几步操作,我们就成功搭建了一个VPN服务器。更多的配置和使用请参考官网的介绍。原文出处:https://mp.weixin.qq.com/s/xxUhtKBSjoLiEeR6EdiYjg
2024年04月10日
76 阅读
0 评论
0 点赞
1
...
3
4
5
...
11