win10使用ssh内网穿透实现局域网之间的远程桌面

前提条件,当然是需要打开被远程的win10系统的远程桌面的设置…

使用win10自带的openssh运行:

ssh -R *:3389:127.0.0.1:3389 root@jokeysoft.com

就可以通过 jokeysoft.com:3389端口进行远程桌面连接了。

使用开机自启脚本运行:
创建批处理文件 start_ssh_tunnel.bat 键入如下脚本:

 @ECHO OFF
 ssh -R *:3389:127.0.0.1:3389 root@jokeysoft.com
 PAUSE

创建 start_ssh_tunnel.vbs 使用静默模式启动(后台运行):

Set WshShell = CreateObject("WScript.Shell") 
WshShell.Run chr(34) & "C:\Users\dell\start_ssh_tunnel.bat" & Chr(34), 0
Set WshShell = Nothing

start_ssh_tunnel.vbs 脚本文件放至win10开机启动脚本目录:

当前用户生效目录:
%
APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
全局生效目录:
%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp

以上目录位置可通过 WindowsKey+R 输入 shell:startup 查看,也在 cmd 命令行下使用 explorer shell:startup 命令查看。

保持ssh连接不中断方法:
ssh客户端:添加~/.ssh/config文件,粘贴如下内容:

Host *
ServerAliveInterval 60
ServerAliveCountMax 10

或者sshd服务端修改配置文件/etc/ssh/sshd_config


    ClientAliveInterval 60
    ClientAliveCountMax 10

至此,启动远程桌面软件输入反向代理的外网地址和端口便可以享受使用 ssh 实现的内网穿透来远程局域网的主机了。

     

wordpress站点迁移到docker服务

为了更好的管理和备份我的博客站点,现已将站点迁移到docker服务中,以下是迁移过程中解决遇到的问题记录。

更换域名为 https://jokey.xyz/ 时执行的SQL语句:

SET @oldsite='www.jokey.xyz'; 
SET @newsite='jokey.xyz';
UPDATE wp_options SET option_value = replace(option_value, @oldsite, @newsite) WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace(post_content, @oldsite, @newsite);
UPDATE wp_links SET link_url = replace(link_url, @oldsite, @newsite);
UPDATE wp_comments SET comment_content = replace(comment_content, @oldsite, @newsite);
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, @oldsite, @newsite);
UPDATE wp_postmeta SET meta_value = replace(meta_value, @oldsite, @newsite);

修改docker内的文件权限解决权限问题:

$ docker exec -it <container_name> /bin/bash 
$ mkdir /var/www/html/wp-content/plugins
$ mkdir /var/www/html/wp-content/uploads
$ chown -R www-data:www-data /var/www
$ find /var/www/ -type d -exec chmod 0755 {} \;
$ find /var/www/ -type f -exec chmod 644 {} \;

本站点使用的 docker 容器:

docker-wordpress-letsencrypt

docker-compose-letsencrypt-nginx-proxy-companion

CentOS7高版本适配低版本包依赖安装

记录一次在centos 7环境下安装部署时,解决由于安装包未适配高版本的系统软件依赖版本导致的安装失败的临时解决方案。

1.需要确保安装的系统配置DNS,可以连上外网。
2.替换当前生效的源为低版本C7.2.1511的源,执行以下命令:

yum install yum-utils
yum-config-manager --disable updates/7/x86_64
yum-config-manager --disable extras/7/x86_64
yum-config-manager --disable base/7/x86_64
yum-config-manager --enable C7.2.1511-base/x86_64
yum-config-manager --enable C7.2.1511-extras/x86_64
yum-config-manager --enable C7.2.1511-updates/x86_64

3.运行安装命令,在安装过程中会根据依赖自动下载安装旧版本的依赖。

使用rsync增量备份和同步数据

为了使用免密认证,先生成主机ssh公钥和私钥,并添加主机公钥到远程备份主机的可信任公钥列表:

$ ssh-keygen 
$ cat ~/.ssh/id_rsa.pub | ssh root@remotehost 'cat >> ~/.ssh/authorized_keys'

递归同步当前主机下的/sourcedir/目录下的dir1/, dir2目录文件,执行如下备份命令:

$ rsync --progress --delete -arHz --include 'dir1/' --include 'dir2/' --exclude '/*' /sourcedir/ root@remotehost:/backup/

执行的参数:

-a: 归档文件模式
-r: 递归同步
-H: 建立文件硬链接
-z: 使用压缩文件传输
--progress: 输出同步日志
--delete: 同步删除与原数据不匹配的数据(非常有用)
--include: 包含某个文件或目录
--exclude: 除过某个文件或目录

sourcedir: 原数据目录
remotehost: 目的主机地址
backup: 目的数据目录