2019年12月13日星期五

Ubuntu 调整交换分区 swap 分区的大小



一、准备工作
执行“sudo swapon -s”命令,查看是否已经存在swap file
示例:
root@ubuntu:~# sudo swapon -s
文件名                          类型            大小    已用    权限
/swap.img                               file            3992572 4128    -2

二、修改swap file
如果第一步存在swap.img则需要先禁用
sudo swapoff /swap.img

修改swap 空间的大小为512mb

sudo dd if=/dev/zero of=/swapfile bs=512MB count=1

设置文件为“swap file”类型

sudo mkswap /swap.img
示例:
root@ubuntu:~# sudo mkswap /swap.img
正在设置交换空间版本 1,大小 = 488.3 MiB (511995904  个字节)
无标签, UUID=e1d4a66c-e089-448f-8b4c-599975db6e28


启用swap.img

sudo swapon /swap.img



microsoft_hyper-v_server_2016 / 2019 使用教程


这是微软推出的一款专用虚拟化产品,没有图形界面,可以在客户机上远程操作,用起来很方便,但是要在客户端添加服务器确是相当的麻烦,绕了很多弯路,经过我的不懈努力,网上查了很多资料,结合实际操作,终于完成了远程管理的连接,本教程只涉及从客户端到服务器端建立管理连接的步骤,系统安装就不说了,过程非常简单。

1、关闭防火墙-服务端

netsh advfirewall set currentprofile state off

2、打开任务管理器,新任务,打开powershell,运行下列命令开启远程管理

Enable-PSRemoting

Enable-WSManCredSSP -role server

3、(非必须步骤)在服务器端(可以通过远程桌面)命令行执行下列命令对客户端进行授权, DESKTOP-G861A0D是客户端的名字

winrm set winrm/config/client @{TrustedHosts="DESKTOP-G861A0D"} 

4、客户端设置就比较麻烦了,第一步,右键开始,计算机管理,找到服务管理器,找到windows remote management服务,设置成自动启动,这是远程管理必须启用的服务。

5、在开始菜单里找到记事本,用管理员权限打开,文件菜单,打开,文件类型选择所有文件,

路径 c:\windows\system32\drivers\etc\   找到hosts文件,用记事本打开后在最后加上自己的服务器的ip和主机名,点击保存。如添加 192.168.1.106 hyperv  后保存。







6、控制面板,程序,启用或关闭windows功能,勾选hyperv管理工具,
下面的hyperv平台也可以根据需要勾选,那个是用来在windows10下面运行虚拟机的。

7、打开gpedit.msc组策略,找到计算机配置,管理模板,系统,凭据分配,
允许分配新的凭据用于仅NTLM服务器身份验证”,同时将“wsman/主机名” 添加到服务器列表中,我们这里就是“wsman/hyperv”,或“wsman/192.168.100.18”














8、开始菜单右键,以管理员权限运行powershell,输入下列命令,这是将服务器添加到客户端信任列表,
Enable-WSManCredSSP -Role client -DelegateComputer "hyperv"
或
Enable-WSManCredSSP -Role client -DelegateComputer "192.168.100.18"

9、在开始菜单里找到windows管理工具,hyperv管理器,打开后,
里面已经连接的是本地计算机,可以直接在本机创建虚拟机,我们这里是连接远程主机。
我们选择连接到服务器,另一台计算机,输入主机名,勾选作为另一个用户连接,
用户名是“主机名\用户名”的格式,输入密码,确定,就可以连接服务器了。

举个例子,我的客户端机计算机名是DESKTOP-G861A0D,服务器计算机名是WIN-N13NKBGUC2K,服务器用户名是Administrator,密码是123456
那么这里
用户名就应该用:
DESKTOP-G861A0D\Administrator
密码就应该用:
123456

鉴于登陆的麻烦 最好勾选“记住我的凭据”
登录成功如图,
可以新建虚拟网卡,外部网络是直接桥接物理网卡,
内部网络是主机与虚拟机之间可以互通的直连网卡,专用网络是只允许虚拟机使用的
至此,Hyper-V Server的安装就完工了,接下来可以在服务器管理器中右键启动Hyper-V管理器直接安装虚拟机。

额外的命令:
将IP为192.168.100.*的主机都加入信任列表
Set-Item  wsman:\localhost\Client\TrustedHosts -value 192.168.100.*


将Microsoft Hyper-V 2016用作文件服务器(16HVSRV01)和Windows Server 2016作为客户端服务器(16GUISRV01)。
配置步骤:


对安装好的Hyper-v Server进行基础配置:
1、切换到Powershell命令行,安装文件服务器角色,运行如下命令:
Install-WindowsFeature –Name FS-FileServer

2、使用powershell运行如下命令创建一个文件夹:
New-Item  -Type Directory -Path C:\Share -Name SMBShare

3、接下来让我们继续创建共享。由于我们有一个文件服务器的目录,我们可以使用PowerShell命令New-SmbShare。“-Name” 参数是共享名称, “- Path ”是共享目录的路径。 “-FullAccess” 意味着我们可以完全访问用户。示例命令如下:
New-SmbShare -Name SMBShare  -Path C:\Share -FullAccess Administrator


让我们来看看SMB共享是否已经在我们的2016客户端测试服务器上创建。我们可以在PowerShell中运行SmbConnection命令。

ubuntu18.04挂载示例:
1 、安装CIFS Utils包
sudo apt-get install cifs-utils
2 、创建挂载点
sudo mkdir /mnt/data
3 挂载(单次有效)
sudo mount -t cifs //192.168.100.250/Drive_E /mnt/data                               # 不需用户密码
sudo mount -t cifs -o username=Administrator //192.168.100.250/Drive_E  /mnt/data                    # 自动用户名,手动输入密码
sudo mount.cifs //192.168.100.250/Drive_E /mnt/data   -o username=Administrator,passord=123456      # 自动用户名和密码
4 写入fstab(重启后自动挂载)

192.168.100.250/Drive_E /mnt/data cifs username=Administrator,passord=123456 0 0
然后:
sudo mount -a


PowerShell 连接远程服务器
服务端
Enable-PSRemoting
winrm quickconfig   ——这个可能不需要

客户端
Set-Item wsman:\localhost\Client\Trustedhosts -value 192.168.100.*

Enter-PSSession -ComputerName 192.168.100.18 –Credential WORKGROUP\Administrator

2019年12月6日星期五

Docker删除镜像和容器


1、删除容器
1)首先需要停止所有的容器
docker stop $(docker ps -a -q)
2)删除所有的容器(只删除单个时把后面的变量改为image id即可)
docker rm $(docker ps -a -q)
2、删除镜像
1)查看host中的镜像
docker images
2)删除指定id的镜像
docker rmi
想要删除untagged images,也就是那些id为的image的话可以用
docker rmi $(docker images | grep "^" | awk "{print $3}")
3)删除全部的images
docker rmi $(docker images -q)
3、当要删除的iamges和其他的镜像有关联而无法删除时
可通过 -f 参数强制删除  docker rmi -f $(dockr images -q)

2019年12月3日星期二

DLNA分享服务设置(Linux minidlna版)


DLNA分享服务设置(Linux minidlna版)

目录:

1 背景
2 安装 DLNA Server
3 限制存取设备
3.1 ebtables设置
3.2 iptables设置
4 附录
4.1 ebtables基本命令
4.1.1 查看rules列表
4.1.2 新建/删除链
4.2 新建规则
5 参考

1 背景
DLNA 是 Digital Living Network Alliance 的缩写, 它是由 Sony 为首的多家厂商所组成的联盟, 并且制定出一套这用于数字媒体分享的协议.

最近的家用数字产品, 比如说手机, 平板电脑, 数字电视等几乎都标榜它们是符合 DLNA 认证的多媒体设备.

只要家中的数码设备连接到同一个区域网路, 使用 DLNA 就可以很方便地把数字媒体分享给不同的播放设备. 比如说把手机中的影片直接送到电视上播放, 或是把照片送进印表机中列印等等.

由于可以透过无线网路进行资料传输, 不需要接上传输线也不需要额外的设定动作, 相当方便.

这篇文章会间单介绍如何在 Linux 上架设 DLNA server 来分享媒体, 同时使用 ebtables 来限制使用设备.

2 安装 DLNA Server
首先是安装 DLNA server, 我使用的是 minidlna 这个很间单的软件. 在 Debian 上只要用apt 就可以安装了.

sudo apt-get install minidlna
接著, 编辑 /etc/minidlna.conf 来设定分享目录:

media_dir=/srv/media
第一行会把 /srv/media 底下所有的媒体文件(照片, 影片, 音乐)分享出去. 如果想要限制媒体的种类, 可以在目录前加上 V(影片), A(声音)或 P(照片)来指定种类:

media_dir=V,/srv/video
另外也别忘了指定 port 以及 server 的名称:

port=8200
model_name=My DLNA Server
然后更新 cache

sudo service minidlna force-reload
这么一来, 支持 DLNA 的播放程序如 media player 就可以直接浏览 server 上的媒体, 并且串流播放. 当然, 平板或手机也能轻易播放分享出来的媒体.

Sony 的手机和平板多半都有附上 DLNA browser, App 名称是「已连线的设备」, 打开后便会自动搜寻区域网路中的 DLNA server. 如果你的手机或平板没有内建这类软件, 可以安装 MediaHouse UPnP/DLNA Browser. 需要注意的是, 这些 DLNA browser 的功能比较类似文件管理器, 点选媒体后它们会启动系统中的媒体播放程序 (比如说 mx player 或 poweramp). 至于 iOS 的用护则有 AirPlayer 或是 media:connect 等选择, 它们多半本身就具备了媒体播放功能.

3 限制存取设备
3.1 ebtables设置
DLNA 是设计给家庭环境使用, 它假设能够连上家用区域网路的设备都通过了某种程度的认证 (比如说拥有无线网路密码), 因此它没有认证与权限相关的设定, 所有能连上区域网路的设备都可以播放 server 上的媒体.

尽管大部份的家庭环境是这样没错, 但有时候我们还是不希望把媒体分享给所有网路上的设备, 比如说租房子时使用的网路是与其它房客共享的, 若不想把照片影片一起分享给不认识的房客, 该怎麽做呢?

常见的解法是使用 MAC address 来作为区分. 一般来说在区域网路上的设备都有一个 MAC address, 我们可以设定只有登记在白名单上的设备才能浏览媒体. 在 Linux 上, 利用 MAC address 来过滤封包的程序叫作 ebtables.

sudo apt-get install ebtables
ebtables 用起来很像 iptables, 不同的地方在于他是作用在较低阶的链路层(link layer). 首先我们把 DLNA 相关封包抽出来, 并且设定它的预设处理方式为丢弃封包:

sudo ebtables -N dlna -P DROP
sudo ebtables -A INPUT -p IPv4 --ip-proto tcp --ip-destination-port 8200 -j dlna
接著把设备的 MAC address 加进 dlna chain 中, 并且设定为接受封包:

sudo ebtables -A dlna -s XX:XX:XX:XX:XX:XX -j ACCEPT
这么一来就只有已登记 MAC address 的设备可以看到 server 上的媒体了. 不过这并不算是非常安全的保护措施, 因此较为敏感的资料, 建议还是不要使用 DLNA 分享.

3.2 iptables设置
上面ebtables设置为转载的方法, 我试了, 不起作用, 网上说ebtables需要是bridge模式, 而非bridge模式不起作用. 后来改为iptables, 起到了效果.

sudo iptables -A INPUT -p tcp --dport 8200 -m mac --mac-source 00:22:44:66:88:aa -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 8200 -j DROP
注意上面两句的顺序, 需要先设置允许, 后设置DROP, 否则如果DROP在前, ACCEPT在后, 则会先执行DROP, 后面的ACCEPT就没有效果了.

如果之后还想再加入允许, 则可以用-I, 即insert, 插入允许.

sudo iptables -I INPUT 1 -p tcp --dport 8200 -m mac --mac-source 00:22:44:66:88:bb -j ACCEPT
4 附录
4.1 ebtables基本命令
4.1.1 查看rules列表
ebtables -L
ebtables -L –Lc , 查看各rule的匹配次数以及字节数
4.1.2 新建/删除链
ebtables -N
ebtables -X
4.2 新建规则
ebtables -A [ rules ]
[rules]有几种:

-s 源MAC
-d 目标MAC
-i 入接口
-o 出接口
5 参考
http://electronic-blue.herokuapp.com/blog/2013/01/sharing-digital-media-by-dlna-on-linux/

http://www.cnblogs.com/peteryj/archive/2011/07/24/2115602.html


转自:http://www.mikewootc.com/wiki/sw_develop/multimedia/dlna_server_linux_minidlna.html#%E8%83%8C%E6%99%AF 并有所修改.

2019年11月29日星期五

Linux samba服务器快速安装配置


(1)更新系统及当前软件。
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

(2)安装samba服务器。
sudo apt-get install samba samba-common

*****注意上级目录权限*******
(3)创建一个用于分享的samba目录(依据实际情况执行)
sudo mkdir /mnt/Sync

(4)给创建的这个目录设置权限(依据实际情况执行)
sudo chmod 777 /mnt/Sync

(5)添加用户(下面的 admin 是本次的用户名,再设置samba的密码)。
先使用useradd 命令创建samba用户admin:
useradd admin

(6)设置samba用户admin的密码:
sudo smbpasswd -a admin

(7)配置samba的配置文件。
sudo vim /etc/samba/smb.conf
在配置文件smb.conf的最后添加下面的内容:

[admin]
comment = share folder
browseable = yes
path = /mnt
create mask = 0700
directory mask = 0700
valid users = admin
force user = admin
force group = admin
public = yes
available = yes
writable = yes

上面配置中 valid users =admin 中的 admin 为用户名。

(8)重启samba服务器使配置生效。
sudo service smbd restart

(9)自定义服务端口。
    编辑配置文件
   sudo vim /etc/samba/smb.conf
   在配置文件smb.conf中前面添加下面的内容:
   smb ports = 455
   重启samba服务器使配置生效
   sudo systemctl restart smbd.service

修改Windows客户端映射端口
在Windows修改端口无法直接修改配置文件实现,因为SMB服务本身就是为了Windows量身定做的,其默认指定了445端口。

管理员身份运行cmd控制台依次执行如下命令

sc config LanmanServer start= disabled 
net stop LanmanServer
sc config iphlpsvc start= auto #启动端口转发
netsh interface portproxy add v4tov4 listenport=445 connectaddress=公网IP connectport=端口 #配置端口转发
此时通过访问本地\\127.0.0.1就可以访问服务端配置的共享目录了

Docker安装管理界面portainer

1.拉取jenkins镜像


  确保虚拟机有docker环境后开始安装,
docker pull portainer/portainer

2.启动容器

docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v /home/docker/portainer:/data --name portainer --restart=always portainer/portainer
  到此,portainer安装成功!是不是很简单呢
  访问http://ip地址:9000,记得开放端口哦!


其他使用:
清理所有停止的容器

docker container prune

清理所有不用数据(停止的容器,不使用的volume,不使用的networks,悬挂的镜像)

docker system prune -a

清理所有停止的容器

docker container prune 

debian安装docker-ce


  一、安装docker
下面是使用阿里云的源进行安装的方法,如果在其他系统上安装,比如ubuntu,把debian换成ubuntu就可以了。
# step 1: 安装必要的一些系统工具
sudo apt-get update
sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common
# step 2: 安装GPG证书
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg | sudo apt-key add -
# Step 3: 写入软件源信息
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/debian $(lsb_release -cs) stable"
# Step 4: 更新并安装Docker-CE
sudo apt-get -y update
sudo apt-get -y install docker-ce
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# apt-cache madison docker-ce
# docker-ce | 17.03.1~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# docker-ce | 17.03.0~ce-0~ubuntu-xenial | http://mirrors.aliyun.com/docker-ce/linux/ubuntu xenial/stable amd64 Packages
# Step 2: 安装指定版本的Docker-CE: (VERSION例如上面的17.03.1~ce-0~ubuntu-xenial)
# sudo apt-get -y install docker-ce=[VERSION]


  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18


二、使用国内镜像
修改/etc/docker/daemon.json,添加如下配置:
{
"registry-mirrors": ["https://registry.docker-cn.com","http://hub-mirror.c.163.com"]
}

  • 1

  • 2

  • 3


然后执行命令systemctl restart docker重启docker
三、测试
1.输出version:
docker --version

  • 1


在这里插入图片描述
2.运行hello-world镜像
docker run hello-world

  • 1


在这里插入图片描述
四、参考资料