分类
虚拟机

VMware 10M网卡变1000M兆网卡

在虚拟机启动Linux系统做共享,使用Samba协议,速度最多30M上下,而且不太稳定。因为系统是安装在物理硬盘的,如果不通过虚拟机启动,速度可以到100M以上。估计是网卡问题。

原来默认的VMware安装的硬件网卡是AMD PCnet32,这两个都是10M网卡。所以需要对配置进行修改。

分类
Linux

Linux开机启动脚本

rc.load

/etc/rc.load 或 /etc/rc.d/rc.load

service

#!/bin/bash
#
### BEGIN INIT INFO
# Provides:          zz
# Required-Start:
# Required-Stop:
# Should-Start:      $network $time
# Should-Stop:       $network $time
# Default-Start:     3 4 5
# Default-Stop:
# Short-Description:
# Description:
### END INIT INFO
#

使用让系统开机命令加载脚本:
update-rc.d zz defaults 99

systemctl

systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,就将程序存在系统服务里,即:/usr/lib/systemd/system目录下

该目录下的服务有以service结尾的,也有target结尾的。

分类
Windows 软件

系统封装-Sysprep无法验证windows安装

最近因某公司大量升级系统到Windows 10,需要协助做一个封装系统加快升级进度。结果把所有软件都安装好,在进行封装的时候发生错误了,用IT天空的EasySysPrep在进行封装的时候显示如下图错误:

国外国内的搜索引擎找了不少的内容看,什么删除用户、设置权限、改注册表、看Microsoft Store等办法全试过了都没解决。

受了一些帖子的启发,决定立足自己看能不能在系统日志上找出端倪,最后终于找到办法。

首先说明一下我的环境是这样的:Hyper-V安装的虚拟机,安装Windows 10,把所有的软件都安装设置好,必要的Windows设置做好,在这些步骤完成后设置一个Checkpoint(还原点),这样万一步骤出错可以迅速倒回此处再战

分类
容器

Docker镜像开机自动启动

网上有些文章说,要让docker 的容器自动在开机启动,是写脚本,比如在 rc.local 中写。

其实完全没必要这么麻烦,docker 有相关指令,docker run 指令中加入 –restart=always 就行。

sudo docker run –restart=always …..

如果创建时未指定 –restart=always ,可通过update 命令设置

docker update –restart=always xxx

分类
容器

修改运行中的Docker容器的端口映射和挂载目录

在Docker运行容器+端口映射和磁盘映射:

docker run -it -d -p 80:8080 -v /root/www/www:/usr/local/tomcat/webapps/ROOT tomcat

参数解读:

-d:后台运行;
-p:端口映射   上述80为宿机端口,8080为容器内部端口;
-v:文件挂载   指定宿机目录映射到容器内部的目录(上述就是把宿机/root/www/www的地址映射到容器内部的/usr/local/tomcat/webapps/ROOT目录里面去,容器加载/tomcat/webapps/ROOT目录的时候,实际就是用的www目录)

大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。

有没有办法不保存镜像而直接修改已有的这个容器呢?有。在stackoverflow上面找到答案了,原帖链接

分类
笔记 网络

使用 Zerotier 组建虚拟局域网实现内网穿透

首先 Zerotier 是什么呢? Zerotier 是一拨人为了解决网络复杂,以及因特网过于中心化而提出的解决方案。他们使用点对点 的网络,并且在上面附加一层 VXLAN-like 虚拟网络层 来提高局域网的可见性,安全性。

所以简单来说,Zerotier 通过创建一个虚拟网络,把你的设备添加到这个网络,那么在这个网络内,你的设备就像在同一个路由器内那样可以使用各种端口。

免费版 Zerotier 支持局域网内 100 个设备。Zerotier 支持 Windows、macOS、Linux 三大桌面平台,iOS、Android 两大移动平台,QNAP(威连通)、Synology(群晖)、Western Digital MyCloud NAS(西部数据)三个 NAS 平台,还支持 OpenWrt/LEDE 开源路由器项目。

官网地址:

使用

  • 注册 ZeroTier
  • 创建 Network 私有局域网,得到一个 16 位的 Network ID
  • 在需要加入虚拟局域网的设备上安装各个平台客户端,设备会生成一个 10 位的 ZeroTier address
  • 在设备上加入刚刚创建的 Network ID zerotier-cli join <network id>(或在网页上添加 ZeroTier address)
  • 在官网 network 页面上找到设备,在设备前勾选,信任设备,获得局域网 IP

Windows 系统用命令 ipconfig,Linux/Unix 用命令 ifconfig,然后会看到一个虚拟网卡,有一个 IP 地址。这个 IP 和在官网看到的 network 下的 IP 是一致的,只有同在该虚拟网络下的机器才能访问。

接下来,你可以设置远程桌面(端口号 3389),或者 FTP 服务(端口 21),或者搭建内网网站(端口 80),各种玩法都可以尝试咯。

图文教程可以参考这篇文章

对比

和 ngrok 和 frp 功能类似,但是 ZeroTier 明显入手简单。ZeroTier 只有客户端开源,服务端并没有开源。而 ngrok 和 frp 都是完全开源。但是 ngrok 和 frp 严重依赖于公网固定 IP 的 VPS,是一个中心化的内网穿透工具,一旦中心节点挂掉,那么所有的节点都无法工作。Zerotier 帮助用户实现了服务端,虽然安全性有待考验,但至少还是能用状态。

另外很多人提到的 N2N 开上去也不错,不过我还没怎么用过。等以后尝试过后再补上。

分类
Linux 日记

Ubuntu升级至20.04

前几天Ubuntu 20.04 TLS (Focal Fossa)正式发布,家里的台式机是Ubuntu 18.04 TLS,决定升级到最新TLS版。

首先把系统软件升级到最新:

apt update

apt upgrade

然后执行 do-release-upgrade 如下:

默认TLS版只能升级到TLS版,并且只有第一个补丁版发布才能检测到升级。就是说只有20.04.1发布后才能升级。可以手动指定参数:

do-release-upgrade -m desktop -d

经过漫长的等待,终于更新完了。重启系统。

分类
Linux

Linux 防火墙 ufw 简介

ufw(简单防火墙Uncomplicated FireWall)真正地简化了 iptables,它从出现的这几年,已经成为 Ubuntu 和 Debian 等系统上的默认防火墙。而且 ufw 出乎意料的简单,这对新管理员来说是一个福音,否则他们可能需要投入大量时间来学习防火墙管理。

ufw 也有 GUI 客户端(例如 gufw),但是 ufw 命令通常在命令行上执行的。本文介绍了一些使用 ufw 的命令,并研究了它的工作方式。

首先,快速查看 ufw 配置的方法是查看其配置文件 —— /etc/default/ufw。使用下面的命令可以查看其配置,使用 grep 来抑制了空行和注释(以 # 开头的行)的显示。

$ grep -v '^#\|^$' /etc/default/ufw
IPV6=yes
DEFAULT_INPUT_POLICY="DROP"
DEFAULT_OUTPUT_POLICY="ACCEPT"
DEFAULT_FORWARD_POLICY="DROP"
DEFAULT_APPLICATION_POLICY="SKIP"
MANAGE_BUILTINS=no
IPT_SYSCTL=/etc/ufw/sysctl.conf
IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_netbios_ns"

正如你所看到的,默认策略是丢弃输入但允许输出。允许你接受特定的连接的其它规则是需要单独配置的。

ufw 命令的基本语法如下所示,但是这个概要并不意味着你只需要输入 ufw 就行,而是一个告诉你需要哪些参数的快速提示。

ufw [--dry-run] [options] [rule syntax]
分类
Linux

Ubuntu18.04 修改hostname

Ubuntu Server 18.04 更改/etc/hostname已经不能更改hostname了,需要修改以下配置:

修改/etc/cloud/cloud.cfg文件

preserve_hostname: false
修改
preserve_hostname: true

执行命令 hostnamectl set-hostname 主机名

hostnamectl set-hostname testname

重启系统生效

分类
Windows

使用WinWS创建服务

使用Windows中,有些工具或软件需要开机前启动,比如Frp,开机启动VMWare虚拟机系统。之前一直用Window的计划任务,即使在系统用户未登录的情况下也能实现启动,直到发现了WinWS,现在已把要启动的EXE或脚本做成服务,实现启动与管理。

WinWS是开源的,使用简单,先在GitHub下载:

https://github.com/kohsuke/winsw/releases

Win10选择WinSW.NET461,低版本系统如Win7选择NET4,XP选择NET2。如果本机没有.NET框架的可以下载带.NET的版本。再下载sample-minimal.xml配置文件。

我下载的是WinSW.NET461.exe。把下载的WinSW.NET461.exe和sample-minimal.xml重命名,保持名字一致,如改成winsw.exe和winsw.xml。

用记事本编辑winsw.xml配置:

配置项说明

id:指定在Windows系统内部使用的识别服务的ID。在系统中安装的所有服务中必须是唯一,它应该完全由字母数字字符组成。

name:服务的简短名称,它可以包含空格和其他字符。

description:该服务可读描述。当选中该服务时,它将显示在Windows服务管理器中。

executable:该元素指定要启动的可执行文件。它可以是绝对路径,也可以指定可执行文件的名称,然后从环境变量“PATH”中搜索(需要注意的是,服务经常在不同的用户账户中运行,因此它可能需要有不同于你设置在环境变量Path中的路径)。

arguments:启动参数,可选。